<!-- end for testing -->
<dependency>
- <groupId>${project.groupId}</groupId>
- <artifactId>devicemanager-xran-ru-fh-model</artifactId>
+ <groupId>org.o-ran-sc.scp-oam-modeling.features</groupId>
+ <artifactId>x-ran-ru-fh-model</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
+++ /dev/null
-module xran-ald-port {
- yang-version 1.1;
- namespace "urn:xran:ald-port:1.0";
- prefix "xran-ald-port";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the input state and output configuration for
- the xRAN Radio Unit Antenna Line Device capability.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- feature OVERCURRENT-SUPPORTED {
- description
- "This feature indicates that the RU supports the over-current notification
- capability.";
- }
-
- container ald-ports-io {
- description
- "ALD port information.
- ALD port of the RU that can be used to connect External Equipment (Antenna Line Devices).
- Communication uses AISG over HDLC.
- Physical connection depends on connector type offered by the port (RS-485 or antenna line)
- Note: Single instance of ALD Port can point to more than one antenna line devices.";
-
- leaf over-current-supported {
- type boolean;
- default false;
- description
- "Set to TRUE when the RU supports over curent notifications";
- }
-
- list ald-port {
- key "name";
- description
- "Leaf nodes describing ALD Port";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies a ald port instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
-
- leaf port-id {
- type uint8;
- config false;
- mandatory true;
-
- description
- "A number which identifies an ALD Port.
- The number of the Physical ALD port connector in the module.
- If the module supports 2 ALD Port connectors, use 0 and 1.";
- }
-
- leaf dc-control-support{
- type boolean;
- config false;
- mandatory true;
-
- description
- "It is shown that on/off in the DC power supply is possible.
- In case of False, power supply is always on.";
- }
-
- leaf dc-enabled{
- when "./../dc-control-support = 'true'";
- type boolean;
-
- description
- "If dc-control-support is true case, this leaf is effective.
- In case of true, the power supply is turned on.";
- }
-
- leaf supported-connector{
- type enumeration {
- enum ANTENNA_CONNECTOR {
- description
- "This ald port is related to antenna connector";
- }
- enum RS485_PORT {
- description
- "This ald port is related to RS485 port";
- }
- }
- config false;
- mandatory true;
-
- description
- "Informs about the connectors of Module which ALDs are connected to.
- This value is depending on HW design.";
- }
- }
- }
-
- notification overcurrent-report {
- if-feature OVERCURRENT-SUPPORTED;
-
- description
- "The RU is able to report overcurrent condition about Port.
- This function is depending on HW design.
- The notification depend on power consumption which connected ALD devices and module.";
-
- container overload-condition {
- description
- "Container used in notification";
-
- leaf-list overloaded-ports {
- type leafref {
- path "/ald-ports-io/ald-port/name";
- }
-
- description
- "List of overloaded ports";
- }
- }
- }
-}
+++ /dev/null
-module xran-dhcp {
- yang-version 1.1;
- namespace "urn:xran:dhcp:1.0";
- prefix "xran-dhcp";
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- import ietf-dhcpv6-types {
- prefix dhcpv6-type;
- revision-date 2018-01-30;
- }
-
- organization "xRAN Alliance";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG definitions for managng the DHCP client on
- the xRAN Radio Unit.
-
- Copyright 2018 Members of the xRAN 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef netconf-client-id {
- type union {
- type inet:ip-address;
- type inet:uri;
- }
- description "A NETCONF client identifier";
- }
-
- grouping netconf-clients {
- description "the netconf clients discovered using DHCP";
- list netconf-clients{
- key client;
- description "A list of IP addresses or URIs for NETCONF clients";
- leaf client{
- type netconf-client-id;
- description "the client identifier";
- }
- leaf optional-port {
- type inet:port-number;
- description "an optional (non-default) port";
- }
- }
- }
-
- grouping dhcpv4-option {
- description "DHCPv4 Configuration options";
-
- leaf dhcp-server-identifier {
- type inet:ip-address;
- description "DHCP server identifier";
- }
- leaf domain-name {
- type string;
- description "Name of the domain";
- }
- leaf-list domain-name-servers {
- type inet:ip-address;
- description "A list of DNS servers";
- }
- leaf interface-mtu {
- type uint32 {
- range "0..65535";
- }
- description "Minimum Transmission Unit (MTU) of the interface";
- }
- leaf-list default-gateways{
- type inet:ip-address;
- description "the list of default gateways on the RUs subnet";
- }
- leaf vendor-specific-option {
- type string;
- description "The vendor specific option #43";
- }
- uses netconf-clients;
- }
-
- grouping dhcpv6-option {
- description "DHCPv6 Configuration options";
-
- container dhcp-server-identifier{
- description "dhcpv6 server identifief";
- uses dhcpv6-type:duid;
- }
- leaf domain-name {
- type string;
- description "Name of the domain";
- }
- leaf-list domain-name-servers {
- type inet:ip-address;
- description "A list of DNS servers";
- }
- uses netconf-clients;
- }
-
- container dhcp {
- config false;
- description
- "DHCP client configuration";
-
- list interfaces {
- key "interface";
- description "Interface configuration";
-
- leaf interface {
- type if:interface-ref;
- description "Name of the interface";
- }
-
- container dhcpv4 {
- description "DHCPv4 information";
- leaf client-id {
- type string;
- description "DHCP client identifier";
- }
- uses dhcpv4-option;
- }
- container dhcpv6 {
- description "DHCPv6 information";
- container dhcp-client-identifier{
- description "dhcpv6 client identifief";
- uses dhcpv6-type:duid;
- }
- uses dhcpv6-option;
- }
- }
-
- container m-plane-dhcp {
- description "leafs covering off DHCP aspects of m-plane operations";
- leaf private-enterprise-number {
- type uint16;
- description "the private eneteprrise number allocated to xRAN";
- }
- leaf vendor-class-data {
- type string;
- description
- "The string used in DHCPv4 option 60 or DHCPv4 option 124 and
- DHCPv6 option 16";
- }
- }
- }
-}
+++ /dev/null
-module xran-externalio {
- yang-version 1.1;
- namespace "urn:xran:external-io:1.0";
- prefix "xran-io";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the input state and output configuration for
- the xRAN Radio Unit external IO.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- container external-io {
- description
- "External IO information.";
- list input {
- key "name";
- config false;
- description
- "Leaf nodes describing external line inputs";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies an input port instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
- leaf port-in {
- type uint8;
- description
- "A number which identifies an external input port.";
- }
-
- leaf line-in {
- type boolean;
- default true;
- description
- "Value TRUE indicates that circuit is open.
- Value FALSE indicates that circuit is closed.
-
- Usually when nothing is connected to the line the value is TRUE.
- The details of external line-in implementation are HW specific.";
- }
- }
-
- list output {
- key "name";
- description
- "Leaf nodes describing external line outputs";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies an output port instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
- leaf port-out {
- type uint8;
- mandatory true;
- description
- "A number which identifies an external output port.";
- }
-
- leaf line-out {
- type boolean;
- default true;
- description
- "Value TRUE indicates that circuit is in its natural state.
- Value FALSE indicates that circuit is not in its natural state.";
- }
- }
- }
-
- notification external-input-change {
- description
- "Notification used to indicate that external line input has changed state";
- container current-input-notification {
- description "a container for the state of the input ports";
- list external-input {
- key "name";
- description "a list of the input ports and their state";
- leaf name{
- type leafref{
- path "/external-io/input/name";
- }
- description "the name of the ald-port";
- }
- leaf io-port {
- type leafref{
- path "/external-io/input/port-in";
- }
- description "the external input port";
- }
- leaf line-in {
- type leafref{
- path "/external-io/input/line-in";
- }
- description "the state of the external input port";
- }
- }
- }
- }
-}
+++ /dev/null
-module xran-interfaces {
- yang-version 1.1;
- namespace "urn:xran:interfaces:1.0";
- prefix "xran-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";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG definitions for managng the xRAN Radio Unit
- interfaces.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- identity XRAN-INTERFACE-TYPE {
- base if:interface-type;
- description
- "This identity is used as a base for all interface types
- defined by xRAN.";
- }
-
- identity ALIASMAC-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "Identity type for alias MAC based CU plane interface,
- whwere multiple MAC addresses are used on the same Ethernet interface. ";
- }
-
- identity ETH-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "identity type for ethernet plus vlan based CU plane interface. ";
- }
-
- identity UDPIP-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "identity type for UDP/IP based CU plane interface. ";
- }
-
- 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";
- leaf u-plane-marking {
- type pcp;
- default 7;
- description "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";
- }
- }
-
- grouping xran-dscp-marking {
- description
- "Configuration data for CU Plane DSCP CoS marking";
- leaf u-plane-marking {
- type inet:dscp;
- default 46;
- description "46 represents expedited forwarding";
- }
- leaf c-plane-marking {
- type inet:dscp;
- default 46;
- description "46 represents expedited forwarding";
- }
- leaf m-plane-marking {
- type inet:dscp;
- default 18;
- description "18 represents AF21 or 'immediate traffic'";
- }
- 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";
- }
- }
-
-
- augment '/if:interfaces/if:interface' {
- when "derived-from-or-self(if:type, 'xran-int:XRAN-INTERFACE-TYPE')";
- description
- "Applicable for xran interfaces which use references to a port
- component.";
-
- container port-reference {
- description
- "a port reference used by other xRAN modules";
- leaf xran-port-name {
- type leafref {
- path '/hw:hardware/hw:component/hw:name';
- }
- description
- "xRAN interfaces use a reference to a physical port component";
- }
- leaf xran-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 RU, i.e., cannot be
- changed suring RU reboots.";
- }
- }
- leaf last-cleared {
- type yang:date-and-time;
- config false;
- description
- "Timestamp of the last time the interface counters were
- cleared.";
- }
- }
-
- // Augmentation for lower layer definition
-
- augment '/if:interfaces/if:interface' {
- when "derived-from-or-self(if:type, 'xran-int:XRAN-INTERFACE-TYPE') and
- not(if:lower-layer-if)" {
- description
- "Data specific for an xRAN bottom level interface, i.e.,
- use relative path to check the current interface does not have any
- lower-layer-if defined";
- }
- description
- "Augments interfaces/interface with xRAN information .";
- container physical-int {
- description "container for physical interface";
- leaf maximum-speed {
- type enumeration {
- enum 1000BASE {
- description "1GbE";
- }
- enum 2.5GBASE {
- description "2.5GbE";
- }
- enum 5GBASE{
- description "5GbE";
- }
- enum 10GBASE{
- description "10GbE";
- }
- enum 25GBASE{
- description "25GbE";
- }
- enum 40GBASE{
- description "40GbE";
- }
- enum 50GBASE{
- description "50GbE";
- }
- enum 100GBASE{
- description "100GbE";
- }
- }
- config false;
- description "maximum speed of physical interface";
- }
- leaf cable-type {
- type enumeration {
- enum TWISTED-PAIR{
- description "twisted pair";
- }
- enum FIBER-OPTIC{
- description "fiber optic";
- }
- }
- config false;
- description "type of cable";
- }
- }
- }
-
-// Augmentation for basic Ethernet leafs
-
- augment "/if:interfaces/if:interface" {
- when "derived-from-or-self(if:type, 'ianaift:ethernetCsmacd') or
- derived-from-or-self(if:type, 'ianaift:l2vlan')" {
- description "Applies to Ethernet interfaces";
- }
- description
- "Augment the interface model with parameters for all
- Ethernet-like interfaces
-
- Contains parameters for interfaces that use Ethernet framing
- and expose an Ethernet MAC layer";
- 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 mac-address {
- type yang:mac-address;
- description
- "The MAC address of the interface.";
- }
- leaf bia-mac-address {
- type yang:mac-address;
- config false;
- description
- "The 'burnt-in' MAC address. I.e the default MAC address
- assigned to the interface if no MAC address has been
- explicitly configured on it.";
- }
- leaf-list alias-macs {
- when "derived-from-or-self(../if:type, 'xran-int:ALIASMAC-INTERFACE')";
- if-feature ALIASMAC-BASED-CU-PLANE;
- type yang:mac-address;
- config false;
- description
- "Augments interfaces with range of alias MAC addresses.";
- }
- leaf vlan-tagging {
- type boolean;
- default true;
- description
- "Indicates if VLAN tagging is used.
- Default true is used to enable an RU to auonomously discover that it is
- connected to a trunk port.";
- }
- uses cos-marking;
- }
-
-// augmentation for VLAN definition
-
- augment "/if:interfaces/if:interface" {
- when "derived-from-or-self (if:type, 'ianaift:l2vlan')";
- description "augments for VLAN definition";
- leaf base-interface {
- type if:interface-ref;
- must "/if:interfaces/if:interface[if:name = current()]"
- + "/xran-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.";
- }
- }
-
- // Augmention to ietf-ip covering DSCP
-
- augment "/if:interfaces/if:interface/ip:ipv4" {
- when "derived-from-or-self(../if:type, 'xran-int:UDPIP-INTERFACE')";
- if-feature UDPIP-BASED-CU-PLANE;
- description "augments for IPv4 based transport";
- uses xran-dscp-marking;
- }
- augment "/if:interfaces/if:interface/ip:ipv6" {
- when "derived-from-or-self(../if:type, 'xran-int:UDPIP-INTERFACE')";
- if-feature UDPIP-BASED-CU-PLANE;
- description "augments for IPv6 based transport";
- uses xran-dscp-marking;
- }
-
- rpc reset-interface-counters {
- description
- "Management plane triggered restart of the interface counters.";
- }
-}
+++ /dev/null
-module xran-mplane-int {
- yang-version 1.1;
- namespace "urn:xran:mplane-interfaces:1.0";
- prefix "xran-mplane-int";
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import xran-interfaces {
- prefix "xran-int";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG definitions for managng the xRAN Radio Unit
- management plane interface.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef vlan-id {
- type uint16 {
- range 1..4094;
- }
- description
- "Type definition representing a single-tagged VLAN";
- }
- container mplane-info {
- description "top level container for management plane information";
- container searchable-mplane-access-vlans-info {
- description
- "These parameters shall be stored by the RU in reset persistant memory
- to enable it to be re-used to optimize VALN discovery procerdures.";
- 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 RU 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 RU about lowest VID to be used
- in VLAN scan procedure";
- }
- leaf highest-vlan-id {
- type vlan-id;
- description
- "Value of this parameter informs RU about highest VID to be used
- in VLAN scan procedure";
- }
- }
- }
-
- 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]/xran-int:vlan-id";
- }
- description
- "vlans used to communicate with management plane servers.";
- }
- container client-info {
- description "the NETCONF client information";
- 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 RU
- or manually configured.";
- }
- leaf port {
- type inet:port-number;
- default "4334";
- description
- "The port number the call home server listens on.";
- }
- }
- 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 RU
- or manually configured.";
- }
- leaf port {
- type inet:port-number;
- default "4334";
- description
- "The port number the call home server listens on.";
- }
- }
- 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 "call home server port number";
- }
- leaf server-ssh-port {
- type inet:port-number;
- default 830;
- description "SSH server port number";
- }
- }
- }
- }
-}
+++ /dev/null
-module xran-processing-element {
- yang-version 1.1;
- namespace "urn:xran:processing-element:1.0";
- prefix "xran-elements";
-
- import ietf-yang-types {
- prefix yang;
- }
-
- import ietf-inet-types {
- prefix "inet";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import ietf-ip {
- prefix "ip";
- }
-
- import xran-interfaces {
- prefix "xran-int";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG definitions for mapping of transport flows to
- processing elements. Three options are supported:
- i) virtual MAC based mapping
- ii) MAC addrress + VLAN-ID based mapping
- iii) UDP/IP based mapping
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- identity XRAN-INTERFACE-TYPE {
- base if:interface-type;
- description
- "This identity is used as a base for all interface types
- defined by xRAN.";
- }
-
- identity ALIASMAC-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "Identity type for alias MAC based CU plane interface,
- whwere multiple MAC addresses are used on the same Ethernet interface. ";
- }
-
- identity ETH-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "identity type for ethernet plus vlan based CU plane interface. ";
- }
-
- identity UDPIP-INTERFACE {
- base XRAN-INTERFACE-TYPE;
- description
- "identity type for UDP/IP based CU plane interface. ";
- }
-
- container processing-elements {
- description
- "a model defining the mapping between transport flows and arbitrary
- xRAN processing elements. A processing element may be then defined for
- handling connectivity or delay procedures, or defined with a corresponding
- eaxcid for CU plane operations";
- leaf transport-session-type {
- type identityref {
- base XRAN-INTERFACE-TYPE;
- }
- description
- "the type of transport session used for identifying different processing
- elements";
- }
- list ru-elements {
- key "name";
- description
- "the list of transport definitions for each processing element";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies a processing
- element instance.
-
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
- container transport-flow {
- description
- "container for the transport-flow used for CU plane";
- leaf interface-name {
- type leafref {
- path "/if:interfaces/if:interface/if:name";
- }
- description "the interface name ";
- }
- container aliasmac-flow {
- when "derived-from(../../../transport-session-type, 'ALIASMAC-INTERFACE')";
- if-feature xran-int:ALIASMAC-BASED-CU-PLANE;
- description "leafs for virtual mac type data flows";
- leaf ru-aliasmac-address {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:alias-macs";
- }
- config false;
- mandatory true;
- description
- "RU's alias MAC address used for alias MAC based flow";
- }
- leaf vlan-id {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:vlan-id";
- }
- description
- "RU's VLAN-ID used for alias MAC based flow";
- }
- leaf llscu-mac-address {
- type yang:mac-address;
- mandatory true;
- description
- "lls-CU's MAC address used for alias MAC based flow";
- }
- }
- container eth-flow {
- when "derived-from(../../../transport-session-type, 'ETH-INTERFACE')";
- description "leafs for mac + vlan-id type data flows";
- leaf ru-mac-address {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:mac-address";
- }
- mandatory true;
- description
- "RU's MAC address used for Ethernet based flow";
- }
- leaf vlan-id {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/xran-int:vlan-id";
- }
- mandatory true;
- description
- "RU's VLAN-ID used for Ethernet based flow";
- }
- leaf llscu-mac-address {
- type yang:mac-address;
- mandatory true;
- description
- "lls-CU's MAC address used for alias MAC based flow";
- }
- }
- container udpip-flow {
- when "derived-from(../../../transport-session-type, 'UDPIP-INTERFACE')";
- if-feature xran-int:UDPIP-BASED-CU-PLANE;
- description "leafs for UDP/IP type data flows";
- choice address {
- leaf ru-ipv4-address {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv4/ip:address/ip:ip";
- }
- description "RU's IPv4 address";
- }
- leaf ru-ipv6-address {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../../interface-name]/ip:ipv6/ip:address/ip:ip";
- }
- description "RU's IPv6 address";
- }
- mandatory true;
- description "choice of RU IPv4 or IPv6 address";
- }
- leaf llscu-ip-address {
- type inet:ip-address;
- mandatory true;
- description "lls-CU's IPv address";
- }
- leaf ru-ephemeral-udp-port {
- type inet:port-number;
- mandatory true;
- description
- "ephemeral port used by RU";
- }
- leaf llscu-ephemeral-udp-port {
- type inet:port-number;
- mandatory true;
- description
- "ephemeral port used by lls-CU";
- }
- leaf destination-udp {
- type inet:port-number;
- mandatory true;
- description "the well known UDP port number used by eCPRI";
- // fixme - add in a default when allocated by IANA
- }
- }
- }
- }
- }
-}
+++ /dev/null
-module xran-transceiver {
- yang-version 1.1;
- namespace "urn:xran:transceiver:1.0";
- prefix "xran-transceiver";
-
- import xran-interfaces {
- prefix "xran-int";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the operational state data for SFP transceivers used in
- an xRAN Radio Unit.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- container port-transceivers {
- description
- "Container for Port transceiver information.
- Leaf nodes providing parameters status and diagnostic
- information for pluggable transceiver module (like SFP,
- SFP+, SFP28)";
- list port-transceiver-data {
- key "interface-name port-number";
- description "data recovered from port transceivers";
- leaf interface-name {
- type leafref {
- path "/if:interfaces/if:interface/if:name";
- }
- description "Name of interface";
- }
- leaf port-number {
- type leafref {
- path "/if:interfaces/if:interface[if:name = current()/../interface-name]/xran-int:port-reference/xran-int:xran-port-number";
- }
- description
- "A number which identifies a port. In case of SFP/SFP+
- port, port number value is 0 to N-1 where N is number of ports
- in the device. Numbers 0 to N-1 are assigned to ports in order
- following order of labels on the device (labels for ports are
- not necessarily numbers starting from zero)";
- }
-
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies a transceiver instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
-
- leaf present {
- type boolean;
- config false;
- mandatory true;
- description
- "Indicates if pluggable transceiver module is present.";
- }
-
- leaf vendor-id {
- type string {
- length 1..16;
- }
- config false;
- description
- "Name of the transciever vendor Full name of transceiver vendor,
- that contains ASCII characters, left-aligned with
- any padding on the right with ASCII spaces (20h), or ASCII nul
- (00h) removed, and ASCII less-than (3Ch) replaced with ASCII
- open-brace (7Bh) and ASCII more-than (3Eh) replaced with ASCII
- close-brace (7Dh).
-
- Optional node included when the NETCONF Server has determined
- the vendor ID.";
- }
-
- leaf vendor-part {
- type string {
- length 1..16;
- }
- config false;
- description
- "Transceiver vendors part number, that contains ASCII characters,
- left-aligned with any padding on the right with ASCII spaces
- (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
- replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
- replaced with ASCII close-brace (7Dh).
-
- Optional node included when the NETCONF Server has determined
- the vendor part number.";
- }
-
- leaf vendor-rev {
- type string {
- length 1..2;
- }
- config false;
- description
- "Transceiver vendors revision number. 2-octet field that
- contains ASCII characters.
-
- Optional node included when the NETCONF Server has determined
- the vendor revision number";
- }
-
- leaf serial-no {
- type string {
- length 1..16;
- }
- config false;
- description
- "Transceiver serial number encoded using ASCII characters,
- left-aligned with any padding on the right with ASCII spaces
- (20h), or ASCII nul (00h) removed, and ASCII less-than (3Ch)
- replaced with ASCII open-brace (7Bh) and ASCII more-than (3Eh)
- replaced with ASCII close-brace (7Dh).
-
- Optional node included when the NETCONF Server has determined
- the serial number.";
- }
-
- leaf SFF8472-compliance-code {
- type enumeration {
- enum diagnostics-undefined {
- description "undefined compliance code";
- }
- enum rev9.3-diagnostics {
- description "diagnostics published 08-01-02";
- }
- enum rev9.5-diagnostics{
- description "diagnostics published 06-01-04";
- }
- enum rev10.2-diagnostics{
- description "diagnostics published 06-01-07";
- }
- enum rev11.0-diagnostics{
- description "diagnostics published 05-21-10";
- }
- enum rev11.3-diagnostics{
- description "diagnostics published 06-11-13";
- }
- enum rev11.4-diagnostics{
- description "diagnostics published 07-24-14";
- }
- enum rev12.0-diagnostics{
- description "diagnostics published 08-28-14";
- }
- }
- config false;
- description
- "Indication of which feature set(s) are
- implemented in the transceiver from Byte 94 of address A0h
- https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF";
-
- // FIXME is this optional or mandatory?
- reference "https://ta.snia.org/higherlogic/ws/public/download/294/SFF-8472.PDF";
- }
-
- leaf connector-type {
- type enumeration {
- enum unknown {
- description "encoded as 00h in Table 4-3 of SFF-8024";
- }
- enum subscrber-connector {
- description "encoded as 01h in Table 4-3 of SFF-8024";
- }
- enum fiber-jack {
- description "encoded as 06h in Table 4-3 of SFF-8024";
- }
- enum lucent-connector {
- description "encoded as 07h in Table 4-3 of SFF-8024";
- }
- enum mt-rj {
- description "encoded as 08h in Table 4-3 of SFF-8024";
- }
- enum multiple-optical {
- description "encoded as 09h in Table 4-3 of SFF-8024";
- }
- enum sg {
- description "encoded as 0Ah in Table 4-3 of SFF-8024";
- }
- enum optical-pigtail {
- description "encoded as 0Bh in Table 4-3 of SFF-8024";
- }
- enum multi-fiber-parralel-optic-1x12 {
- description "encoded as 0Ch in Table 4-3 of SFF-8024";
- }
- enum multi-fiber-parralel-optic-2x16 {
- description "encoded as 0Dh in Table 4-3 of SFF-8024";
- }
- enum hssdc_2{
- description "encoded as 20h in Table 4-3 of SFF-8024";
- }
- enum copper-pigtail{
- description "encoded as 21h in Table 4-3 of SFF-8024";
- }
- enum rj45{
- description "encoded as 22h in Table 4-3 of SFF-8024";
- }
- enum no-separable-connector{
- description "encoded as 23h in Table 4-3 of SFF-8024";
- }
- enum mxc-2x16{
- description "encoded as 24h in Table 4-3 of SFF-8024";
- }
- }
- config false;
- // TOCHECK: Remove any enumerations which are not applicable
- description
- "Connector-type indicates the external optical or electrical cable
- connector provided as the media interface as defined in the connector
- types derived from table 4-3 in SFF-8024.";
- // FIXME is this optional or mandatory?
- reference "https://ta.snia.org/higherlogic/ws/public/document?document_id=944";
- }
-
- leaf nominal-bitrate {
- type uint32;
- config false;
- description
- "Nominal bitrate in Mb/s (10^6 bits per second).
- If needed actual value is rounded to nearest integer.
-
- Optional node included when the NETCONF Server has determined
- the nominal bit rate.";
- }
-
- leaf low-bitrate-margin {
- type uint8;
- config false;
- description
- "Minimum supported bitrate as percentage of nominal bitrate
- below nominal bitrate.
-
- Optional node included when the NETCONF Server has determined
- the low bit rate margin";
- }
-
- leaf high-bitrate-margin {
- type uint8;
- config false;
- description
- "Maximum supported bitrate as percentage of nominal bitrate
- above nominal bitrate.
-
- Optional node included when the NETCONF Server has determined
- the high bitrate margin.";
- }
-
- leaf rx-power-type {
- type enumeration {
- enum oma {
- description "oma = optical modulation amplitude";
- }
- enum avp{
- description "avp = average power";
- }
- }
- config false;
- description
- "Receieved power measurement type
- oma = optical modulation amplitude
- avp = average power";
- // FIXME is this optional or mandatory?
- }
-
- leaf rx-power {
- type decimal64{
- fraction-digits 4;
- }
- config false;
- description
- "Measured RX input power in mW.
-
- Optional node included when the NETCONF Server has determined
- the measured RX power.";
- }
-
- leaf tx-power {
- type decimal64{
- fraction-digits 4;
- }
- config false;
- description
- "Measured coupled TX output power in mW.
-
- Optional node included when the NETCONF Server has determined
- the measured coupled TX power.";
- }
-
- leaf tx-bias-current {
- type decimal64{
- fraction-digits 4;
- }
- config false;
- description
- "Measured transmitter laser bias current in mA.
-
- Optional node included when the NETCONF Server has determined
- the tx bias current.";
- }
-
- leaf voltage {
- type decimal64{
- fraction-digits 4;
- }
- config false;
- description
- "Internally measured supply voltage in mV.
-
- Optional node included when the NETCONF Server has determined
- the internally measured voltage.";
- }
-
- leaf temperature {
- type decimal64 {
- fraction-digits 4;
- }
- config false;
- description
- "Internally measured module temperature in degrees Celcius.";
- // FIXME is this optional or mandatory?
- }
- }
- }
-}
+++ /dev/null
-module xran-ald {
- yang-version 1.1;
- namespace "urn:xran:ald:1.0";
- prefix "xran-ald";
-
- import xran-ald-port {
- prefix "ap";
- }
-
- organization "xRAN Alliance";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the module for the ald communication.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- // rpc-statements
- rpc ald-communication {
- description
- "Rpc to support communication between lls-CU and Antenna Line Devices";
-
- input {
- leaf port-id {
- type leafref {
- path "/ap:ald-ports-io/ap:ald-port/ap:port-id";
- }
- mandatory true;
- description
- "Unique ALD port identifier reported by radio";
- }
-
- leaf ald-req-msg {
- type binary {
- length "0..1200";
- }
-
- description
- "Response message to be forwarded to ALD in type of binary-string";
- }
- }
-
- output {
- leaf port-id {
- type leafref {
- path "/ap:ald-ports-io/ap:ald-port/ap:port-id";
- }
- mandatory true;
- description
- "Unique ALD port identifier reported by radio";
- }
-
- leaf status {
- type enumeration {
- enum ACCEPTED {
- description
- "Operation was accepted, message was processed towards ALD and response is provided";
- }
- enum REJECTED {
- description
- "Operation was rejected by RU";
- }
- }
- mandatory true;
-
- description
- "Status of RPC handling seen from RU perspective";
- }
-
- leaf error-message {
- when "../status='REJECTED'";
- type string;
-
- description
- "Detailed error message when the status is rejected. E.g. wrong ALD port identifier was used in RPC received from Netconf Client";
- }
-
- leaf ald-resp-msg {
- type binary {
- length "0..1200";
- }
-
- description
- "Response message forwarded from ALD in type of binary-string";
- }
-
- leaf frames-with-wrong-crc {
- type uint32;
-
- description
- "Number of frames with incorrect CRC (FCS) received from ALD - running counter";
- }
-
- leaf frames-without-stop-flag {
- type uint32;
-
- description
- "Number of frames without stop flag received from ALD - running counter";
- }
-
- leaf number-of-received-octets {
- type uint32;
-
- description
- "Number of octets received from HDLC bus - running counter";
- }
- }
- }
-}
+++ /dev/null
-module xran-ecpri-delay {
- yang-version 1.1;
- namespace "urn:xran:message5:1.0";
- prefix "xran-msg5";
-
- import xran-processing-element {
- prefix "element";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module is an optional module for supporting eCPRI message 5 handling
- used for eCPRI based delay measurements.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- container ecpri-delay-message {
- description "top level tree covering off lls-CU to RU msg5 delay measurement";
-
- container ru-compensation {
- config false;
- description
- "leafs for ru timing compensation based on message 5 handling";
- leaf tcv2 {
- type uint32;
- units nanoseconds;
- description
- "a compensation value to account for expected delay from packet
- receipt at R2 to timestamping in the RU";
- }
- leaf tcv1 {
- type uint32;
- units nanoseconds;
- description
- "a compensation value to account for expected processing time from
- timestamping in the RU until actual packet transmission at R3";
- }
- }
-
- leaf enable-message5 {
- type boolean;
- default false;
- description
- "whether RU's eCPRI message 5 handling is enabled.";
- }
-
- container message5-sessions {
- description "session information for eCPRI message 5";
-
- list session-parameters {
- key "session-id";
- description "list of MSG5 session information";
- leaf session-id {
- type uint32;
- description "Session ID for MSG5 responder";
- }
- leaf processing-element-name {
- type leafref {
- path "/element:processing-elements/element:ru-elements/element:name";
- }
- description "the name of the processing element used for MSG5";
- }
- container flow-state {
- config false;
- description "MSG5 flow state";
- leaf responses-transmitted {
- type uint32;
- description
- "The total number of eCPRI mesage 5 response messages transmitted by
- the RU.";
- }
- leaf requests-transmitted {
- type uint32;
- description
- "The total number of eCPRI mesage 5 request messages transmitted by
- the RU.";
- }
- leaf followups-transmitted {
- type uint32;
- description
- "The total number of eCPRI mesage 5 follow up messages transmitted by
- the RU.";
- }
- }
- }
- }
- }
-}
+++ /dev/null
-module xran-file-management {
- yang-version 1.1;
- namespace "urn:xran:file-management:1.0";
- prefix "xran-file-mgmt";
-
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the configuration and operations for handling upload.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- grouping file-path-grouping {
- description "Complete logical path of the file on the RU to upload/download
- (no wildcard is allowed) ex : /xRAN/log/syslog.1";
-
- leaf local-logical-file-path {
- type string;
- mandatory true;
- description "Local logical file path";
- }
-
- leaf remote-file-path {
- type string;
- mandatory true;
- description "URI specifying the remote-file-path on lls-CU/NMS.
- Format:sftp://user[:password]@host[:port]/path";
- }
- }
-
- grouping output-status-grouping {
- description "Status grouping";
-
- leaf status {
- type enumeration {
- enum SUCCESS {
- description "";}
- enum FAILURE {
- description "";}
- }
- description "Operation status";
- }
-
- leaf reject-reason {
- when "../status = 'FAILURE'";
- type string;
- description "";
- }
- }
-
- grouping credential-information{
- description "Type of authentication to use for SFTP upload or download.";
- choice credentials {
- case password {
- container password {
- presence true;
- leaf password {
- type string;
- mandatory true;
- description
- "password needed for authentication.";
- }
- description
- "password authentication method in use";
- }
- }
- case certificate {
- container certificate {
- presence true;
- description
- "certificate authentication method in use";
- }
- }
- description "";
- }
- }
-
- rpc file-upload {
- description "File upload over SFTP from RU to NETCONF client";
- input {
- uses file-path-grouping;
- uses credential-information;
- }
- output {
- uses output-status-grouping;
- }
- }
-
- rpc retrieve-file-list {
- description "List all the files in the logical xRAN unit (* is allowed as wild-card).";
- input {
- leaf logical-path {
- type string;
- mandatory true;
- description "xRAN unit of which the files are to be listed.
- ex : xRAN/log, xRAN/PM, xRAN/transceiver";
- }
- leaf file-name-filter {
- type string;
- description "Filter which are to be applied on the result list of file names (* is allowed as wild-card).";
- }
-
- }
- output {
- uses output-status-grouping;
- leaf-list file-list {
- when "../status = 'SUCCESS'";
- type string;
- description "List of files in the xRAN unit with the filter applied.";
- }
- }
- }
-
- notification file-upload-notification {
- uses file-path-grouping;
- uses output-status-grouping;
- description "";
- }
-
- rpc file-download {
- description
- "Management plane triggered to generate the download file of RU.";
- input {
- uses file-path-grouping;
- uses credential-information;
- }
- output {
- uses output-status-grouping;
- }
- }
-
- notification file-download-event {
- uses file-path-grouping;
- uses output-status-grouping;
- description "";
- }
-}
+++ /dev/null
-module xran-lbm {\r
- yang-version 1.1;\r
- namespace "urn:xran:lbm:1.0";\r
- prefix "xran-lbm";\r
-\r
- import ietf-yang-types {\r
- prefix yang;\r
- revision-date 2013-07-15;\r
- }\r
-\r
- organization "xRAN Forum";\r
-\r
- contact\r
- "www.xran.org";\r
-\r
- description\r
- "This module defines the module capabilities for\r
- the xRAN Radio loop-back protocol (IEEE 802.1ag).\r
- It is derived from MEF-38 (Service OAM Fault Management YANG Modules, April 2012)\r
-\r
- Copyright 2018 the xRAN Forum.\r
-\r
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\r
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
- POSSIBILITY OF SUCH DAMAGE.\r
-\r
- Redistribution and use in source and binary forms, with or without\r
- modification, are permitted provided that the following conditions are met:\r
-\r
- * Redistributions of source code must retain the above copyright notice,\r
- this list of conditions and the above disclaimer.\r
- * Redistributions in binary form must reproduce the above copyright notice,\r
- this list of conditions and the above disclaimer in the documentation\r
- and/or other materials provided with the distribution.\r
- * Neither the Members of the xRAN Forum nor the names of its\r
- contributors may be used to endorse or promote products derived from\r
- this software without specific prior written permission.";\r
-\r
- revision "2018-07-20" {\r
- description\r
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.\r
-\r
- This version of the model supports v01.00 of the corrsponding xRAN\r
- M-Plane Specification.";\r
- reference "XRAN-FH.MP.0-v01.00";\r
- }\r
-\r
- typedef priority-type {\r
- type uint32 {\r
- range "0..7";\r
- }\r
- description\r
- "A 3 bit priority value to be used in the VLAN tag, if present\r
- in the transmitted frame.";\r
- reference "[802.1q] 12.14.7.3.2:e";\r
- }\r
-\r
-\r
- typedef mep-id-type {\r
- type uint16 {\r
- range "1..8191";\r
- }\r
- description\r
- "Maintenance association End Point Identifier (MEPID): A small integer,\r
- unique over a given Maintenance Association, identifying a\r
- specific MEP.";\r
- reference "[802.1q] 3.19 and 19.2.1";\r
- }\r
- typedef vlan-id-type {\r
- type uint16 {\r
- range "1..4094";\r
- }\r
- description\r
- "The VLAN-ID that uniquely identifies a VLAN. This is the 12-bit VLAN-ID\r
- used in the VLAN Tag header.";\r
- reference "[802.1q] 9.6";\r
- }\r
-\r
- typedef md-level-type {\r
- type int32 {\r
- range "0..7";\r
- }\r
- description\r
- "Maintenance Domain Level (MD Level) identifier. Higher numbers\r
- correspond to higher Maintenance Domains, those with the greatest\r
- physical reach, with the highest values for customers' CFM PDUs.\r
- Lower numbers correspond to lower Maintenance Domains, those with\r
- more limited physical reach, with the lowest values for CFM PDUs\r
- protecting single bridges or physical links.";\r
- reference "[802.1q] 18.3, 21.4.1, IEEE8021-CFM-MIB.Dot1agCfmMDLevel";\r
- }\r
-\r
- typedef lbm-transaction-id-type {\r
- type uint32;\r
- description\r
- "A loopback transaction identifier";\r
- reference "[802.1q] 21.7.3";\r
- }\r
-\r
- list maintenance-domain {\r
- key "id";\r
- description\r
- "A Maintenance Domain managed object is required in order to create an MA\r
- with a MAID that includes that Maintenance Domain’s Name. From\r
- this Maintenance Domain managed object, all Maintenance\r
- Association managed objects associated with that Maintenance\r
- Domain managed object can be accessed, and thus controlled.";\r
- reference "[802.1q] 12.14.5";\r
- leaf id {\r
- type string;\r
- description\r
- "A unique identifier of a Maintenance Domain";\r
- reference "[802.1q] 12.14.5";\r
- }\r
-\r
- leaf name {\r
- type string;\r
- description\r
- "The value for the Maintenance Domain Name. Only the name-type\r
- 'character-string' is supported";\r
- reference "[802.1q] 21.6.5.1 (Table 21-19), 12.14.5.3.2:a";\r
- }\r
-\r
- leaf md-level {\r
- type md-level-type;\r
- default 0;\r
- description\r
- "Integer identifying the Maintenance Domain Level (MD Level). Higher\r
- numbers correspond to higher Maintenance Domains, those with the\r
- greatest physical reach, with the highest values for customers'\r
- CFM PDUs. Lower numbers correspond to lower Maintenance\r
- Domains, those with more limited physical reach, with the lowest\r
- values for CFM PDUs protecting single bridges or physical links.";\r
- reference "[802.1q] 12.14.5.1.3:b";\r
- }\r
-\r
- list maintenance-association {\r
- key "id";\r
- description\r
- "This list represents Maintenance Entity Groups (Y.1731) or\r
- Maintenance Associations (802.1ag). MEGs/MAs are sets of\r
- MEPs, each configured to the same service inside a common\r
- OAM domain.";\r
- leaf id {\r
- type string;\r
- description\r
- "A unique identifier of a Maintenance Association";\r
- reference "[802.1q] 12.14.6";\r
- }\r
- leaf name {\r
- type string;\r
-\r
- description\r
- "The value for the Maintenance Association Name. Only the name-type\r
- 'character-string' is supported";\r
- reference "[802.1q] 12.14.5.3.2:b, Table 21-20";\r
- }\r
-\r
- list component-list {\r
- key "component-id";\r
- description\r
- "A list of components each of which can be managed in a manner\r
- essentially equivalent to an 802.1Q bridge.";\r
- reference "[802.1q] IEEE8021-CFM-V2-MIB.ieee8021CfmMaCompTable";\r
- leaf component-id {\r
- type uint32;\r
- description\r
- "The bridge component within the system to which the information\r
- in this maintenance-association applies";\r
- reference "[802.1q] IEEE8021-CFM-V2-MIB.ieee8021CfmMaComponentId";\r
- }\r
- leaf name {\r
- type string;\r
-\r
- description\r
- "The value for the Maintenance Association Name. Only the name-type\r
- 'character-string' is supported";\r
- reference "[802.1q] 12.14.5.3.2:b, Table 21-20";\r
- }\r
-\r
- leaf-list vid {\r
- type vlan-id-type;\r
- min-elements 1;\r
- ordered-by user;\r
- description\r
- "The VID(s) monitored by this MA, or 0, if the MA is not attached to any\r
- VID. The first VID returned is the MA's Primary VID";\r
- reference "[802.1q] 12.14.5.3.2:b";\r
- }\r
-\r
- leaf-list remote-meps {\r
- type mep-id-type;\r
- description\r
- "A list of the MEPIDs of the MEPs in the MA.";\r
- reference "[802.1q] 12.14.6.1.3:g";\r
- }\r
- list maintenance-association-end-point {\r
- key "mep-identifier";\r
- description\r
- "The list of Maintenance association End Points in a specific Maintance\r
- Association.";\r
- leaf mep-identifier {\r
- type mep-id-type;\r
- description\r
- "Integer that is unique among all the MEPs in the same MA. Other\r
- definition is: a small integer, unique over a given\r
- Maintenance Association, identifying a specific Maintenance\r
- association End Point.";\r
- reference "[802.1q] 12.14.6.3.2:b";\r
- }\r
- leaf interface {\r
- type string;\r
- mandatory true;\r
- description\r
- "An interface, either a Bridge Port or an aggregated IEEE 802.3 port\r
- within a Bridge Port, to which the MEP is attached. Each interface in\r
- the system is uniquely identified by an interface-name. The structure\r
- and content of the name is outside the scope of this specification.";\r
- reference "[802.1q] 12.14.7.1.3:b";\r
- }\r
- leaf primary-vid {\r
- type vlan-id-type;\r
- mandatory true;\r
- description\r
- "The Primary VID of the MEP. The value 0 indicates that either the\r
- Primary VID is that of the MEP's MA or that the MEP's MA is\r
- associated with no VID";\r
- reference "[802.1q] 12.14.7.1.3:d";\r
- }\r
- leaf administrative-state {\r
- type boolean;\r
- mandatory true;\r
- description\r
- "The administrative state of the MEP";\r
- reference "[802.1q] 12.14.7.1.3:e";\r
- }\r
- leaf mac-address {\r
- type yang:mac-address;\r
- config false;\r
- description\r
- "The MAC address of the MEP";\r
- reference "[802.1q] 12.14.7.1.3:i";\r
- }\r
- container loopback {\r
- config false;\r
- description\r
- "Data definitions related to the Loopback function.";\r
- leaf replies-transmitted {\r
- type yang:counter32;\r
- config false;\r
- mandatory true;\r
- description\r
- "The total number of LBRs transmitted.";\r
- reference "[802.1q] 12.14.7.1.3:ad";\r
- }\r
- }\r
- }\r
- }\r
- }\r
- }\r
-}\r
+++ /dev/null
-module xran-operations {
- yang-version 1.1;
- namespace "urn:xran:operations:1.0";
- prefix "xran-ops";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG model used for RU operations.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef xran-version {
- type string {
- pattern '[0-9]+(\.[0-9]+)';
- }
- description
- "this type definition is used to represent the version of the xRAN
- fronthaul interface.";
- }
-
- container operational-info{
- config false;
- description
- "a collection of operational infor for the RU";
-
- container xran-split {
- description
- "details about the xran split ";
- leaf interface-version {
- type xran-version;
- default "1.0";
- description "current version of the xRAN split sdupported by the RU";
- }
- leaf optional-header-support {
- type enumeration {
- enum NONE {
- description
- "Indicates that an RU only supports eCPRI C/U plane headers";
- }
- enum 1914POINT3 {
- description
- "Indicates that an RU supports the optional 1914.3 header format
- for the C/U plane";
- }
- }
- default NONE;
- description
- "Placeholder to enable future management plane aspects of 1914.3
- headers to be included.";
- }
- leaf ecpri-concatenation-support {
- type boolean;
- default false;
- description
- "This leaf is used to indicate whether the RU supports the optional
- eCPRI concatenation capability";
- }
- }
-
- container operational-state {
- description
- "Operational state for the Radio Unit";
- leaf restart-cause {
- type enumeration {
- enum POWER-ON {
- description
- "RU restarted because it was powered on";
- }
- enum SUPERVISION-WATCHDOG {
- description
- "RU restarted because it's supervision wathcdog timer wasn't reset
- by a NETCONF client (inferring loss of NETCONF connectivity)";
- }
- enum MPLANE-TRIGGERED-RESTART {
- description
- "RU restarted because of an M-plane issued rpc";
- }
- enum SOFTWARE-FAILURE {
- description
- "RU restarted because of software failure";
- }
- enum OTHER-WATCHDOG-TIMER {
- description
- "RU restarted because of some other non NETCONF watchdog timer";
- }
- enum UNKNOWN {
- description
- "The restart reason for the RU is unknown";
- }
- }
- description "the cause for the last restart of the RU";
- }
- }
-
- leaf re-call-home-no-ssh-timer {
- type uint16;
- units seconds;
- default 60;
- description
- "The timer used by the xRAN Radio Unit to repeatedley call home to
- identified call home servers if it has not already an established SSH
- connection to the identified server.";
- }
- }
-
- rpc reset {
- // TODO add nacm statement, e.g., nacm:default-deny-all;
- description
- "Management plane triggered restart of the radio unit.
- A server SHOULD send an rpc reply to the client before
- restarting the system.";
-
- }
-}
+++ /dev/null
-module xran-performance-management {
- yang-version 1.1;
- namespace "urn:xran:performance-management:1.0";
- prefix "xran-pm";
-
- import ietf-yang-types {
- prefix "yang-types";
- revision-date 2013-07-15;
- }
-
- // import idetifier for RU
- import ietf-hardware {
- prefix "hw";
- }
-
- // import ietf-interface
- import ietf-interfaces {
- prefix "if";
- }
-
- // import ietf-inet-type
- import ietf-inet-types {
- prefix "inet";
- }
-
- // import xran-port-number
- import xran-interfaces {
- prefix "xran-int";
- }
-
- // import ru-mac-address, lls-cu-mac-address and vlan-id
- import xran-processing-element {
- prefix "xran-elements";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the configuration for performance measurement for
- transceiver and rx-window measurement objects.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
-
- feature GRANULARITY-TRANSPORT-MEASUREMENT {
- description
- "This feature indicates that the RU supports an optional object-unit TRANSPORT in rx-window-measurement.";
- }
- feature GRANULARITY-EAXC-ID-MEASUREMENT {
- description
- "This feature indicates that the RU supports an optional object-unit EAXC_ID in rx-window-measurement.";
- }
-
- grouping start-and-end-time {
- description
- "Definition for start and end time for an event";
-
- leaf start-time {
- type yang-types:date-and-time;
- description
- "Start time for measurement of object stats";
- }
- leaf end-time {
- type yang-types:date-and-time;
- description
- "End time for measurement of object stats";
- }
- }
-
- grouping transceiver-measurement-result-grouping {
- description
- "transceiver-measurement-result are listed per port-number";
-
- list transceiver-measurement-result {
- key "object-unit-id";
- config false;
- leaf object-unit-id {
- type leafref {
- path "/if:interfaces/if:interface/xran-int:port-reference/xran-int:xran-port-number";
- }
-
- description
- "port-number is used for the object-unit-id for the
- transceiver-measurement-result, for which object-unit is
- PORT_NUMBER only";
- }
- container min {
- description
- "minimum value with recorded time are included for the
- measurement-object";
-
- leaf value {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "minimum value for the measurment-object";
- }
- leaf time {
- type yang-types:date-and-time;
-
- description
- "recorded time for the minimum value";
- }
- }
- container max {
- description
- "maximum value with recorded time are included for the
- measurement-object";
-
- leaf value {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "maximum value for the measurment-object";
- }
- leaf time {
- type yang-types:date-and-time;
-
- description
- "recorded time for the maximum value";
- }
- }
- container first {
- description
- "first value with the recorded time are included for the
- measurement-object";
-
- leaf value {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "first value of the measurement-object";
- }
- leaf time {
- type yang-types:date-and-time;
-
- description
- "recorded time for the first value";
- }
- }
- container latest {
- description
- "latest value with the recorded time are included for the
- measurement-object";
-
- leaf value {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "latest value of the measurement-object";
- }
- leaf time {
- type yang-types:date-and-time;
-
- description
- "recorded time for the latest value";
- }
- }
- leaf-list frequeny-table {
- type uint32;
-
- description
- "frequency-table for the measurment-object are included per bin.
- The configuration parameters for this frequency-table are defined
- by bin-count, lower-bound and upper-bound";
- }
-
- description
- "List of transceiver measurement results";
- }
- }
-
- grouping rx-window-measurement-result-grouping{
- description
- "Group of measurement reasults for rx window measurements";
-
- choice object-unit-id {
- config false;
- case RU {
- leaf name{
- type leafref {
- path "/hw:hardware/hw:component/hw:name";
- }
-
- description
- "the name of RU in ietf-hardware/component is used
- when RU is selected as object-unit for the reception window
- stats.";
- }
- leaf count {
- type uint64;
- mandatory true;
-
- description
- "the number of data packet are counted for the reception
- window stats per RU.";
- }
- }
-
- case TRANSPORT {
- list tr-measured-result{
- leaf name{
- type leafref{
- path "/xran-elements:processing-elements/xran-elements:ru-elements/xran-elements:name";
- }
-
- description
- "the name of ru-elements in xran-processing-elements
- when TRANSPORT is selected as object-unit for the reception
- window stats.";
- }
- leaf count {
- type uint64;
- mandatory true;
-
- description
- "the number of data packet are counted for the reception
- window stats.";
- }
-
- description
- "the number of data packet are counted for the reception
- window stats per TRANSPORT.";
- }
- }
-
- case EAXC_ID {
- list eaxc-measured-result {
- leaf eaxc-id{
- type uint16;
-
- description
- "eaxc-id is used
- when EAXC_ID is selected as object-unit for the reception
- window stats.
- EAXC_ID consists of CU-Port-Id, Band-Selector, CC-id and
- RU-Port-Id to be used in header of C/U-plane data packet.";
- }
- leaf count {
- type uint64;
- mandatory true;
-
- description
- "the number of data packet are counted for the reception
- window stats.";
- }
- leaf transport-name {
- type leafref{
- path "/xran-elements:processing-elements/xran-elements:ru-elements/xran-elements:name";
- }
-
- description
- "the name of ru-elements in xran-processing-elements for the
- transport information corresponding to this eaxc-id";
- }
-
- description
- "the number of data packet are counted for the reception
- window stats per EAXC-ID.";
- }
- }
-
- description
- "measurement-result for the reception window stats depends on the
- configured object-unit, RU, TRANSPORT or EAXC_ID";
- }
- }
-
- container performance-measurement-objects {
- description
- "configuration for performance management and measurement-result are
- included";
-
- leaf enable-SFTP-upload {
- type boolean;
- default false;
- description
- "Flag to enable upload of performance measurement result files.";
- }
-
- leaf enable-random-file-upload {
- type boolean;
- default false;
- description
- "Flag to enable upload of performance measurement result files at
- random within file-upload-interval.";
- }
-
- list remote-SFTP-uploads {
- key remote-SFTP-upload-path;
- description
- "SFTP upload can be done to one or more than one SFTP servers";
-
- leaf remote-SFTP-upload-path {
- type inet:uri;
- description
- "URI specifying the remote location where the files are to uploaded.
- The following format is possible:
- sftp://<username>@<host>[:<port>]";
- }
-
- choice credentials {
- description
- "Type of authentication to use for SFTP upload.";
-
- case password {
- container password {
- presence true;
- leaf password {
- type string;
- mandatory true;
-
- description
- "password needed for authentication.";
- }
- description
- "password authentication method in use";
- }
- }
- case certificate {
- container certificate {
- presence true;
- description
- "certificate authentication method in use";
- }
- }
- }
- }
-
- leaf transceiver-measurement-interval {
- type uint16;
- description
- "measurement interval to measure the performance of transceiver
- measurement objects periodically.";
- }
-
- leaf rx-window-measurement-interval {
- type uint16;
- description
- "measurement interval to measure the performance of reception
- window measurement objects periodically.";
- }
-
- leaf notification-interval {
- type uint16;
- description
- "notification interval for the measurement result to be notified
- periodically.";
- }
-
- leaf file-upload-interval {
- type uint16;
- description
- "file upload interval for the measurement result file to be
- uploaded periodically.";
- }
-
- list transceiver-measurement-objects {
- key "measurement-object";
- leaf measurement-object {
- type enumeration {
- enum RX_POWER {
- description
- "Measured Rx input power in mW";
- }
- enum TX_POPWER {
- description
- "Measured Tx input power in mW.";
- }
- enum TX_BIAS_COUNT {
- description
- "Internally measured Tx Bias Current in mA";
- }
- enum VOLTAGE {
- description
- "Internally measured transceiver supply voltage in mV";
- }
- enum TEMPERATURE {
- description
- "Internally measured optional laser temperature in degrees Celsius.";
- }
- }
- description "Target metric to measure the performance";
- }
-
- leaf active {
- type boolean;
- default false;
- description
- "Enable/disable the performance measurement per Object";
- }
-
- leaf-list report-info {
- type enumeration {
- enum MAXIMUM {
- description
- "to report maximum value and its recorded time within the
- measurement-interval for the measurement-object.";
- }
- enum MINIMUM {
- description
- "to report minimum value and its recorded time within the
- measurement-interval for the measurement-object.";
- }
- enum FIRST {
- description
- "to report first value and its recorded time within the
- measurement-interval for the measurement-object.";
- }
- enum LATEST {
- description
- "to report latest value and its recorded time within the
- measurement-interval for the measurement-object.";
- }
- enum FREQUENCY_TABLE {
- description
- "to report frequency bin table within the
- measurement-interval for the measurement-object.";
- }
- }
- description "The reporting info to the measurement object.";
- }
-
- leaf object-unit {
- type enumeration {
- enum PORT_NUMBER {
- description
- "unit to measure the performance per object-id";
- }
- }
- mandatory true;
- description "unit to measure the performance per object-id.";
- }
-
- leaf function {
- type enumeration {
- enum RAW {
- description
- "the value is expressed by real value.";
- }
- enum LOG_10 {
- description
- "the value is expressed by logarithm with base 10.";
- }
- }
-
- description
- "the value to be recorded for transceiver-measurement
- by real value or log 10.";
- }
-
- leaf bin-count {
- type uint32;
-
- description
- "the number of bin for the frequency table.";
- }
-
- leaf lower-bound {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "the lower value of the first bin of frequency table.";
- }
-
- leaf upper-bound {
- type decimal64 {
- fraction-digits 4;
- }
-
- description
- "the upper value of the last bin of frequency table.";
- }
- uses transceiver-measurement-result-grouping;
-
- description
- "configuration and measurement result for the transceiver-measurement.";
- }
-
- list rx-window-measurement-objects {
- key "measurement-object";
- leaf measurement-object {
- type enumeration {
- enum RX_ON_TIME {
- description
- "the number of data packets, received on time within
- the reception window.";
- }
- enum RX_EARLY {
- description
- "the number of data packets, received before
- the reception window.";
- }
- enum RX_LATE {
- description
- "the number of data packets, received after
- the reception window.";
- }
- enum RX_CORRUPT {
- description
- "the number of data packets, which are corrupt or whose header
- is incorrect.";
- }
- enum RX_DUPL {
- description
- "the number of data packets, which is duplicated with other packets,
- received within the measurement period.";
- }
- enum RX_TOTAL {
- description
- "the total number of received data packets.";
- }
- }
- description
- "target reception window metric to measure the performance.";
- }
-
- leaf active {
- type boolean;
- default false;
- description
- "Enable/disable the performance measurement per reception window
- measurement object.";
- }
-
- leaf object-unit {
- type enumeration {
- enum RU {
- description
- "the reception window stats are counted per RU.";
- }
- enum TRANSPORT {
- if-feature GRANULARITY-TRANSPORT-MEASUREMENT;
- description
- "the reception window stats are counted per transport flow.
- When there are multiple transport flows between lls-CU and RU,
- e.g. multiple sets of lls-cu mac address, ru mac address and
- vlan-id, the reception window stats per transport flow
- are counted in this case.
- This configuration is allowed only when RU supports
- a feature GRANULARITY-TRANSPORT-MEASUREMENT.";
- }
- enum EAXC_ID {
- if-feature GRANULARITY-EAXC-ID-MEASUREMENT;
-
- description
- "the reception window stats are counted per eAxC ID, which is
- used in the header of receivd data packet.
- This configuration is allowed only when RU supports
- a feature GRANULARITY-EAXC-ID-MEASUREMENT.";
- }
- }
- description
- "unit to measure the performance per object-id.";
- }
-
- leaf report-info {
- type enumeration {
- enum COUNT {
- description
- "the number of data packet are counted for the reception
- window stats.";
- }
- }
- description
- "The reporting info to the measurement object.";
- }
-
- uses rx-window-measurement-result-grouping;
-
- description
- "configuration and measurement result for the reception window stats";
- }
- }
-
- notification measurement-result-stats {
- list transceiver-stats {
- key "measurement-object";
- leaf measurement-object {
- type leafref {
- path "/performance-measurement-objects/transceiver-measurement-objects/measurement-object";
- }
-
- description
- "measurement-object for the transceiver-measurement";
- }
-
- uses start-and-end-time;
- uses transceiver-measurement-result-grouping;
-
- description
- "measurement result of transceiver-measurement per measurement-object";
- }
-
- list rx-window-stats {
- key "measurement-object";
- leaf measurement-object {
- type leafref {
- path "/performance-measurement-objects/rx-window-measurement-objects/measurement-object";
- }
-
- description
- "measurement-object for the reception window measurement";
- }
- uses start-and-end-time;
- uses rx-window-measurement-result-grouping;
-
- description
- "measurement result for the reception window measurement per
- measurement-object";
-
- }
-
- description
- "notification may contain measurement result for transceiver-stats
- and/or rx-window-stats";
- }
-}
+++ /dev/null
-module xran-software-management {
- yang-version 1.1;
- namespace "urn:xran:software-management:1.0";
- prefix xran-swm;
-
- import ietf-inet-types {
- prefix "inet";
- revision-date 2013-07-15;
- }
-
- import ietf-hardware {
- prefix "hw";
- }
-
- import xran-hardware {
- prefix "xran-hw";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines operations and configuration for the management of software packages.
- This module is derived out of opencpe-firmware-mgmt@2014-02-06.yang
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- // typedef statements
-
- container software-inventory {
- config false;
- description
- "Contains information about each software slot and its content.";
-
- list software-slot {
- key name;
- min-elements 2;
-
- description
- "Information about available software-slots and their software.";
-
- leaf name {
- type string;
-
- description
- "Name of the software package. This shall be unique to identify the software-slot.";
- }
-
- leaf status {
- type enumeration {
- enum VALID {
- description
- "Slot Contains software build considered as proven valid";
- }
- enum INVALID {
- description
- "software build is not currently used by RU. The software is considered by RU as damaged (e.g. wrong CRC)";
- }
- enum EMPTY {
- description
- "W slot does not contain software package.";
- }
- }
- config false;
- mandatory true;
-
- description "Indicates the status of the software slot";
- }
-
- leaf active {
- type boolean;
- must "../status = 'VALID'";
- config false;
- description
- "informs if software stored in particular slot is activated at the moment";
- }
-
- leaf running {
- type boolean;
- must "../status = 'VALID'";
- config false;
- description
- "informs if software stored in particular slot is used at the moment";
- }
-
- leaf access {
- type enumeration {
- enum READ_ONLY {
- description
- "slot intended only for factory software,
- activation of such software slot means getting back to factory defaults";
- }
- enum READ_WRITE {
- description
- "slot used for updating software";
- }
- }
- default READ_WRITE;
- config false;
-
- description
- "Indicates the writability of the slot.
- A Read-Only software slot is one which has a factory installed software-slot";
- }
-
- leaf product-code {
- type leafref {
- path "/hw:hardware/hw:component/xran-hw:product-code";
- }
- config false;
-
- description "product code provided by the vendor, specific to the product. This is derived from manifest file.";
- }
-
- leaf vendor-code {
- type string {
- length 1..2;
- }
- config false;
-
- description
- "Unique code of the vendor. This is derived from manifest file.";
- }
-
- leaf build-id {
- type string;
- config false;
-
- description
- "Identity associated with the software build. This is derived from manifest file.";
- }
-
- leaf build-name {
- type string;
- config false;
-
- description
- "Name of the build. This is derived from manifest file.";
- }
-
- leaf build-version {
- type leafref{
- path "/hw:hardware/hw:component/hw:software-rev";
- }
- description "Version of the software build. This is derived from manifest file.";
- }
-
- list files {
- key "name";
- config false;
-
- description "List of all the files present in the software package.";
-
- leaf name {
- type string;
-
- description
- "Name of the file installed in the slot.";
- }
-
- leaf version {
- type string;
-
- description
- "Version of the file installed in the slot";
- }
- leaf local-path {
- type string;
- mandatory true;
-
- description
- "Complete path of the file stored locally";
- }
-
- leaf integrity {
- type enumeration {
- enum OK {
- description "OK - indicates that file integrity is correct";
- }
- enum NOK {
- description "NOK - indicates corrupted file";
- }
- }
- config false;
-
- description
- "Result of the file integrity check (checksum calculation) during installation.";
- }
- }
- }
- }
- // rpc statements
-
- rpc software-download {
- description
- "Rpc needed to perform software download operation.";
-
- input {
- leaf remote-file-path {
- type inet:uri;
- mandatory true;
- description
- "URI of the software image including username.
- The following format is possible:
- sftp://<username>@<host>[:<port>]";
- }
-
- choice credentials {
- description
- "Type of authentication to use for software downloads.";
-
- case password {
- container password {
- presence true;
- leaf password {
- type string;
- mandatory true;
-
- description
- "password needed for authentication.";
- }
-
- description
- "password authentication method in use";
- }
- }
- case certificate {
- container certificate {
- presence true;
- description
- "certificate authentication method in use";
- }
- }
- }
- }
- output {
- leaf status {
- type enumeration {
- enum STARTED {
- description
- "Operation has been started without error.";
- }
- enum FAILED {
- description
- "Operation cannot be started because of error, more detailed information can be found in error-message.";
- }
- }
- mandatory true;
-
- description
- "Status of the software files download";
- }
- leaf error-message {
- when "../status = 'FAILED'";
- type string;
-
- description
- "Detailed error Message when the status is failed.";
- }
-
- leaf notification-timeout {
- type int32;
- units seconds;
- default 30;
-
- description
- "Notification timeout is the time NETCONF client shall
- wait for a 'download-event' notification from RU. If there is no
- 'download-event' notification received within notification-timeout,
- NETCONF client shall assume the download timeout/failure, and follow necessary steps.";
- }
- }
- }
-
- rpc software-install {
- description
- "Install a previously downloaded software package.";
-
- input {
- leaf slot-name {
- type leafref {
- path "/software-inventory/software-slot/name";
- }
- must "/software-inventory/software-slot[name = current()][active = 'false' and running = 'false']" {
- error-message "software-install may be requested only against active::false and running::false slot!";
- }
- mandatory true;
-
- description
- "software-slot to which the software shall be installed to.";
- }
-
- leaf-list file-names {
- type string;
-
- description
- "Names of the files within software package to be installed";
- }
- }
- output {
- leaf status {
- type enumeration {
- enum STARTED {
- description
- "Operation has been started without error.";
- }
- enum FAILED {
- description
- "Operation cannot be started because of error, more detailed information can be found in error-message.";
- }
- }
- mandatory true;
-
- description
- "Status of the software package install.";
- }
- leaf error-message {
- when "../status = 'FAILED'";
- type string;
-
- description
- "Detailed error Message when the status is failed.";
- }
- }
- }
-
- rpc software-activate {
- description
- "Activate a previously installed software.";
- input {
- leaf slot-name {
- type leafref {
- path "/software-inventory/software-slot/name";
- }
- mandatory true;
-
- description
- "Slot name on which software has to be activated.";
- }
- }
- output {
- leaf status {
- type enumeration {
- enum STARTED {
- description
- "Operation has been started without error.";
- }
- enum FAILED {
- description
- "Operation cannot be started because of error, more detailed information can be found in error-message.";
- }
- }
- mandatory true;
-
- description
- "Status of the software files activation";
- }
- leaf error-message {
- when "../status = 'FAILED'";
- type string;
-
- description
- "Detailed error Message when the status is failed.";
- }
-
- leaf notification-timeout {
- type int32;
- units seconds;
- default 30;
-
- description
- "Timeout on client waiting for the activate event";
- }
- }
- }
-
- // notification definitions
- notification download-event {
- description "Notification event structure for download completion";
- leaf file-name {
- type string;
- mandatory true;
-
- description
- "File name of downloaded software package";
- }
-
- leaf status {
- type enumeration {
- enum COMPLETED {
- description
- "Operation completed succesfully";
- }
- enum AUTHENTICATION_ERROR {
- description "source available, wrong credentials";
- }
- enum PROTOCOL_ERROR {
- description "SFTP errors";
- }
- enum FILE_NOT_FOUND {
- description "source not available.";
- }
- enum APPLICATION_ERROR {
- description "Application related errors";
- }
- enum TIMEOUT {
- description "Timeout waiting for download";
- }
- }
-
- description
- "Status of finished operation execution";
- }
- leaf error-message {
- when "../status != 'COMPLETED'";
- type string;
-
- description
- "Detailed description of faulty situation";
- }
-
- }
-
- notification install-event {
- description "Notification event structure for installation completion";
- leaf slot-name {
- type leafref {
- path "/software-inventory/software-slot/name";
- }
-
- description
- "Name of the slot to which software was installed.";
- }
- leaf status {
- type enumeration {
- enum COMPLETED {
- description
- "Operation completed succesfully";
- }
- enum FILE_ERROR {
- description "operation on the file resulted in in error, disk failure, not enough disk space,
- incompatible file format";
- }
- enum INTEGRITY_ERROR {
- description "file is corrupted";
- }
- enum APPLICATION_ERROR {
- description "operation failed due to internal reason";
- }
- }
-
- description
- "Status of finished operation execution";
- }
- leaf error-message {
- when "../status != 'COMPLETED'";
- type string;
-
- description
- "Detailed description of faulty situation";
- }
- }
-
- notification activation-event {
- description "Notification event structure for activation completion";
- leaf slot-name {
- type leafref {
- path "/software-inventory/software-slot/name";
- }
-
- description
- "Name of the slot which was activated";
- }
-
- leaf status {
- type enumeration {
- enum COMPLETED {
- description
- "Operation completed succesfully";
- }
- enum APPLICATION_ERROR {
- description
- "Operation finished with error, more details can by found in error-message";
- }
- }
-
- description
- "Status of finished operation execution";
- }
- leaf return-code {
- type uint8;
-
- description
- "status code return when the software is tried to activate";
- }
- leaf error-message {
- when "../status != 'COMPLETED'";
- type string;
-
- description
- "Detailed description of faulty situation";
- }
- }
-}
+++ /dev/null
-module xran-troubleshooting {
- yang-version 1.1;
- namespace "urn:xran:troubleshooting:1.0";
- prefix "xran-trblsht";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the operations for the troubleshooting logs on the RU.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
-
- grouping troubleshooting-status-grouping {
- description "grouping used for troubleshooting RPCs";
- leaf status {
- type enumeration {
- enum SUCCESS {
- description "rpc completed correctly";
- }
- enum FAILURE {
- description "rpc failed";
- }
- }
- description "result of rpc operation";
- }
- leaf failure-reason {
- when "../status = 'FAILURE'";
- type string;
- description "free form text description why error occurred";
- }
- }
-
- rpc start-troubleshooting-logs {
- description
- "Management plane triggered to start collecting the troubleshooting logs files of RU.";
- output {
- uses troubleshooting-status-grouping;
- }
- }
-
- rpc stop-troubleshooting-logs {
- description
- "Management plane triggered to stop collecting the troubleshooting logs files of RU.";
- output {
- uses troubleshooting-status-grouping;
- }
- }
-
- notification troubleshooting-log-generated {
- description
- "When new log file generated, send this notification.";
- leaf-list log-file-name {
- type string;
- description
- "The list of troubleshooting log file names on the RU.";
- }
- }
-}
+++ /dev/null
-module xran-udp-echo {
- yang-version 1.1;
- namespace "urn:xran:udpecho:1.0";
- prefix "xran-echo";
-
- import xran-interfaces {
- prefix "xran-int";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module covers off aspects of llss-CU to RU interface transport
- verification for UDP/IP based C/U plane connections based on UDP Echo.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- container udp-echo-configuration {
- if-feature xran-int:UDPIP-BASED-CU-PLANE;
- description "container for the configuration of udp echo";
-
- leaf enable-udp-echo {
- type boolean;
- default false;
- description
- "whether RU's UDP ech server is enabled";
- }
-
- leaf dscp-config {
- type enumeration {
- enum REFLECTIVE {
- description
- "DSCP in echoed datagrams is copied from received datagram";
- }
- enum EF {
- description
- "DSCP in echoed datagrams is always be set to expeditied
- forwarding Per Hop Behaviour.";
- }
- }
- default EF;
- description "configuration of UDP echo DSCP";
- }
-
- leaf echo-replies-transmitted {
- type uint32;
- config false;
- description
- "The total number of UDP echo replies transmitted by the RU.";
- }
- }
-}
+++ /dev/null
-module xran-uplane-conf {
- yang-version 1.1;
- namespace "urn:xran:uplane-conf:1.0";
- prefix "xran-uplane-conf";
-
- import xran-processing-element {
- prefix "xran-pe";
- }
-
- import ietf-interfaces {
- prefix "if";
- }
-
- import xran-module-cap {
- prefix "mcap";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the module capabilities for
- the xRAN Radio Unit U-Plane configuration.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- grouping eaxc {
- description
- "One eAxC identifier (eAxC ID) comprises a band and sector
- identifier (BandSector_ID), a component-carrier identifier (CC_ID) and a
- spatial stream identifier (RU_Port_ID).
-
- In this version of the specification, one eAxC contains only one spatial
- stream (i.e. one beam per subcarrier) at a time.
-
- Bit allocation is subdivided as follows:
- * CU_Port_ID: Used to differentiate processing units at lls-CU
- * BandSector_ID: Aggregated cell identifier
- * CC_ID: distinguishes Carrier Components
- * RU_Port_ID: Used to differentiate spatial streams or beams on the RU
-
- The bitwidth of each of the above fields is variable this model is supposed to check
- if we are occpying bits continuously but we do not have to occupy all 16 bits";
-
-
- leaf cu-port-bitmask {
- type uint16;
- mandatory true;
- description
- "mask for eaxc-id bits used to encode CU Port ID";
- }
-
- leaf band-sector-bitmask {
- type uint16;
- mandatory true;
- description
- "mask for eaxc-id bits used to encode the band sector ID";
- }
-
- leaf ccid-bitmask {
- type uint16;
- mandatory true;
- description
- "mask for eaxc-id bits used to encode the component carrier id";
- }
-
- leaf ru-port-bitmask {
- type uint16;
- mandatory true;
- description
- "mask for eaxc-id bits used to encode the RU Port ID";
- }
-
- leaf eaxc-id {
- type uint16;
- mandatory true;
- description
- "encoded value of eaxcid to be read by CU-Plane";
- }
- }
-
- container user-plane-configuration {
- description "top level container for user plane configuration";
-
- container compression {
- description
- "Container which consists of global configurable parameters for compression";
-
- leaf compression-type {
- type enumeration {
- enum STATIC {
- description
- "Indicates that static compression method will be used (both compression and IQ bitwidth)";
- }
-
- enum DYNAMIC {
- description
- "Indicates that dynamic compresion method will be used";
- }
- }
- description
- "Compression type that lls-CU wants to be supported";
- }
-
- leaf bitwidth {
- when "./../compression-type = 'STATIC'";
- type uint8;
- description
- "Bitwidth to be used in compression";
- }
-
- leaf compression-method {
- when "./../compression-type = 'STATIC'";
- type enumeration {
- enum BLOCK_FLOATING_POINT {
- description
- "Block floating point compression and decompression will be used";
- }
-
- enum BLOCK_SCALING {
- description
- "Block scaling compression and decompresion will be used";
- }
-
- enum U_LAW {
- description
- "u-Law compression and decompresion method will be used";
- }
-
- enum BEAMSPACE {
- description
- "Beamspace compression and decompression will be used";
- }
-
- enum MODULATION {
- description
- "Modulation compression and decompression will be used";
- }
- }
- description
- "Compresion method which can be supported by the RU";
- }
- }
-
- list low-level-tx-links {
- key name;
- description
- "Object model for low-level-tx-link configuration";
-
- leaf name {
- type string;
- description
- "Unique name of low-level-tx-link object.";
- }
-
- leaf processing-element {
- type leafref {
- path "/xran-pe:processing-elements/xran-pe:ru-elements/xran-pe:name";
- }
- mandatory true;
- description
- "Contains name of processing-element to be used as transport by low-level-tx-link";
- }
-
- leaf tx-array-carrier {
- type leafref {
- path "/user-plane-configuration/tx-array-carriers/name";
- }
- mandatory true;
- description
- "Contains name of tx-array-carriers MO to be used as transport by low-level-tx-link";
- }
-
- leaf low-level-tx-endpoint {
- type string;
- must "boolean(../../low-level-tx-endpoints[name = current()])" {
- error-message "low-level-tx-endpoint you want to set does not exists in /low-level-tx-endpoints/name";
- }
- mandatory true;
- description
- "Contains name of low-level-tx-endpoints MO to be used as transport by low-level-tx-link";
- }
-
- container remote-address {
- uses eaxc;
-
- must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) =
- '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" {
- error-message "Bitmasks for eaxc-id is badly formatted";
- }
-
- description
- "Contains address of remote TX endpoint served by NETCONF client.";
- }
- }
-
- list low-level-rx-links {
- key name;
- description
- "Object model for low-level-rx-links configuration";
-
- leaf name {
- type string;
-
- description
- "Unique name of low-level-rx-links object.";
- }
-
- leaf processing-element {
- type leafref {
- path "/xran-pe:processing-elements/xran-pe:ru-elements/xran-pe:name";
- }
- mandatory true;
- description
- "Contains name of processing-element to be used as transport by LowLevelTxLink";
- }
-
- leaf rx-array-carrier {
- type leafref {
- path "/user-plane-configuration/rx-array-carriers/name";
- }
- mandatory true;
-
- description
- "Contains name of rx-array-carriers MO to be used as transport by low-level-rx-links";
- }
-
- leaf low-level-rx-endpoint {
- type string;
- must "boolean(../../low-level-rx-endpoints[name = current()])" {
- error-message "low-level-rx-endpoint you want to set does not exists in /low-level-rx-endpoints/name";
- }
- mandatory true;
-
- description
- "Contains name of low-level-rx-endpoints MO to be used as transport by low-level-rx-links";
- }
-
- container remote-address {
- uses eaxc;
-
- must "( cu-port-bitmask + band-sector-bitmask +ccid-bitmask + ru-port-bitmask ) =
- '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" {
- error-message "Bitmasks for eaxc-id is badly formatted";
- }
-
- description
- "Contains address of remote RX endpoint served by Netconf client.";
- }
-
- leaf priority {
- type enumeration {
- enum HIGH {
- description
- "Means high priority for link";
- }
- enum LOW {
- description
- "Means low priority for link";
- }
- }
-
- description
- "Parameter to set priority for this link";
- }
- }
-
- list static-low-level-tx-endpoints {
- key name;
- config false;
- description
- "Object model for static-low-level-tx-endpoints configuration";
-
- leaf name {
- type string;
-
- description
- "Unique name of static-low-level-tx-endpoints object.";
- }
-
- leaf interface {
- type string;
- must "boolean(/if:interfaces/if:interface[if:name = current()])" {
- error-message "ethernet-interface you want to set does not exists in /interfaces/interface/name";
- }
-
- description
- "Contains name of ietf:interface to be used as transport by low-level-tx-endpoints";
- }
-
- leaf array {
- type leafref {
- path "/user-plane-configuration/tx-arrays/name";
- }
- description
- "Contains distname of tx-arrays, particular low-level-tx-endpoints is in hardware dependency with.
- Note: single instance of tx-arrays can be referenced by many instances of low-level-tx-endpoints
- (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
- }
- }
-
- list static-low-level-rx-endpoints {
- key name;
- config false;
- description
- "Object model for static-low-level-rx-endpoints configuration";
-
- leaf name {
- type string;
-
- description
- "Unique name of static-low-level-rx-endpoints object.";
- }
-
- leaf interface {
- type string;
- must "boolean(/if:interfaces/if:interface[if:name = current()])" {
- error-message "interface you want to set does not exists in /interfaces/interface/name";
- }
-
- description
- "Contains name of ietf:interface to be used as transport by low-level-rx-endpoints";
- }
-
- leaf array {
- type leafref {
- path "/user-plane-configuration/rx-arrays/name";
- }
- description
- "Contains distname of rx-arrays, particular low-level-rx-endpoints is in hardware dependency with.
- Note: single instance of rx-arrays can be referenced by many instances of low-level-rx-endpoints
- (e.g. to allow DU to handle multiple fronthauls and multiple component carriers).";
- }
- }
-
- list low-level-tx-endpoints {
- key name;
- description
- "Object model for low-level-tx-endpoints configuration - augmented static-low-level-tx-endpoints by local-address
- which cannot be added to static low-level-tx-endpoints as we cannot have modificable element in static object";
-
- leaf name {
- type string;
- must "boolean(../../static-low-level-tx-endpoints[name = current()])" {
- error-message "name you want to set does not exist in /static-low-level-tx-endpoints/name";
- }
-
- description
- "Unique name of low-level-tx-endpoint object.";
- }
-
- container local-address {
- uses eaxc;
-
- must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) =
- '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" {
- error-message "Bitmasks for eaxc-id is badly formatted";
- }
- description
- "Contains local address of low level TX endpoint offered by Netconf server.";
- }
- }
-
-
- list low-level-rx-endpoints {
- key name;
- description
- "Object model for low-level-rx-endpoint configuration - augmented static-low-level-rx-endpoints by local-address
- which cannot be added to static low-level-rx-endpoints as we cannot have modificable element in static object";
-
- leaf name {
- type string;
- must "boolean(../../static-low-level-rx-endpoints[name = current()])" {
- error-message "name you want to set does not exist in /static-low-level-rx-endpoints/name";
- }
-
- description
- "Unique name of low-level-rx-endpoint object.";
- }
-
- container local-address {
- uses eaxc;
-
- must "( cu-port-bitmask + band-sector-bitmask + ccid-bitmask + ru-port-bitmask ) =
- '(0 | 1 | 3 | 7 | 15 | 31 | 63 | 127 | 255 | 511 | 1023 | 2047 | 4095 | 8191 | 16383 | 32767 | 65535)'" {
- error-message "Bitmasks for eaxc-id is badly formatted";
- }
-
- description
- "Contains local address of low level RX endpoint offered by Netconf server.";
- }
- }
-
- list tx-array-carriers {
- key name;
- description
- "Object model for tx-array-carriers configuration";
-
- leaf name {
- type string;
-
- description
- "Unique name of tx-array-carriers object.";
- }
-
- leaf absolute-frequency-center {
- type uint32;
- mandatory true;
- description
- "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal.";
- }
-
- leaf center-of-channel-bandwidth {
- type uint64;
- units Hz;
- mandatory true;
- description
- "Center frequency of channel bandwidth in Hz. Common for all numerologies.";
- }
-
- leaf channel-bandwidth {
- type uint64;
- units Hz;
- mandatory true;
-
- description
- "Width of carrier given in Hertz";
- }
-
-
- leaf power {
- type decimal64 {
- fraction-digits 4;
- }
- mandatory true;
-
- description
- "Transmission power in dBm. Value applicable to each array element carrier belonging to array carrier.";
- }
-
- leaf active {
- type enumeration {
- enum INACTIVE {
- description
- "carrier does not provide signal - transmission is disabled";
- }
- enum SLEEP{
- description
- "carrier is fully configured and was active but is energy saving mode";
- }
- enum ACTIVE{
- description
- "carrier is fully configured and properly providing the signal";
- }
- }
- default INACTIVE;
-
- description
- "Indicates if transmission is enabled for this tx-array-carriers. Note that Netconf server uses state parameter
- to indicate actual state of tx-array-carriers operation. When tx-array-carriers is in sleep status,
- Netconf server rejects all other operation request to tx-array-carriers object except either request to change from sleep
- to active status or delete MO operation (see 4.8) to the object.";
- }
-
- leaf state {
- type enumeration {
- enum DISABLED {
- description
- "tx-array-carrier is not active - transmission of signal is disabled.";
- }
- enum BUSY {
- description
- "tx-array-carrier is processing an operation requested by change of active parameter.
- When tx-array-carriers is BUSY the transmission of signal is not guaranteed.";
- }
- enum READY {
- description
- "tx-array-carrier had completed activation operation - is active and transmission of signal is ongoing.";
- }
- }
- config false;
-
- description
- "Indicates state of tx-array-carriers activation operation";
- }
-
- leaf type {
- type enumeration {
- enum NR {
- description
- "5G technology";
- }
- }
- config false;
-
- description
- "Type of carrier. Indicates array-carrier technology.";
- }
-
- leaf fft-size {
- type uint32;
-
- description
- "The FFT size defines the number of bins used for dividing the window into equal strips, or bins.
- Hence, a bin is a spectrum sample, and defines the frequency resolution of the window.";
- }
-
- leaf downlink-radio-frame-offset {
- type uint32 {
- range 0..12288000;
- }
- mandatory true;
-
- description
- "This parameter is used for offsetting the starting position of 10ms radio frame.
- Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.
- Note2: Unit is 1/1.2288e9 Hz and accuracy is 1/4 Tc. Then, its range is calculated 0..12288000.";
- }
-
- leaf downlink-sfn-offset {
- type int16 {
- range -32768..32767;
- }
- mandatory true;
-
- description
- "This parameter is used for offsetting SFN value.
- Unit is in 10ms.
- Note: The value should have same value within DU to all tx-array-carrierss that have same frequency and bandwidth.";
- }
-
- leaf default-scs {
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
-
- mandatory true;
-
- description
- "Sub-carrier spacing configuration";
- }
-
- list scs-specific-config {
- key scs;
- description
- "List of scs-specific configurations";
- uses scs-config;
- }
- leaf cp-length {
- type uint32;
- description
- "CP length woud be determined by deployment types that has different
- delay spread requirements, and/or determined by frequency bands, service type
- or determined by whether beam forming technology is used or not";
- }
- }
-
- list rx-array-carriers {
- key name;
- description
- "Object model for rx-array-carriers configuration";
-
- leaf name {
- type string;
- description
- "Unique name of rx-array-carriers object.";
- }
-
-
- leaf absolute-frequency-center {
- type uint32;
- mandatory true;
- description
- "Absolute Radio Frequency Channel Number - indirectly indicates RF center carrier frequency of downlink signal.";
- }
- leaf center-of-channel-bandwidth {
- type uint64;
- units Hz;
- mandatory true;
- description
- "Center frequency of channel bandwidth. Common for all numerologies.";
- }
- leaf channel-bandwidth {
- type uint64;
- units Hz;
- mandatory true;
- description
- "Width of carrier given in Hertz";
- }
-
-
- leaf active {
- type enumeration {
- enum INACTIVE {
- description
- "carrier does not provide signal - transmission is disabled";
- }
- enum SLEEP{
- description
- "carrier is fully configured and was active but is energy saving mode";
- }
- enum ACTIVE{
- description
- "carrier is fully configured and properly providing the signal";
- }
- }
- default INACTIVE;
- description
- "Indicates if transmission is enabled for this rx-array-carriers. Note that Netconf server uses state parameter
- to indicate actual state of rx-array-carriers operation. When rx-array-carriers is in sleep status,
- Netconf server rejects all other operation request to rx-array-carriers object except either request to change from sleep
- to active status or delete MO operation (see 4.8) to the object.";
- }
-
- leaf state {
- type enumeration {
- enum DISABLED {
- description
- "rx-array-carrier is not active - transmission of signal is disabled.";
- }
- enum BUSY {
- description
- "rx-array-carrier is processing an operation requested by change of active parameter.
- When tx-array-carriers is BUSY the transmission of signal is not guaranteed.";
- }
- enum READY {
- description
- "rx-array-carrier had completed activation operation - is active and transmission of signal is ongoing.";
- }
- }
- config false;
-
- description
- "Indicates state of rx-array-carriers activation operation";
- }
-
- leaf type {
- type enumeration {
- enum NR {
- description
- "5G technology";
- }
- }
- config false;
-
- description
- "Type of carrier. Indicates array-carrier technology.";
- }
-
- leaf fft-size {
- type uint32;
- description
- "FFT size";
- }
-
- leaf ul-fft-sampling-offset {
- type uint32;
- description
- "uplink FFT sampling offset";
- }
-
- leaf n-ta-offset {
- type uint32;
- description
- "Value of configurable N-TA offset";
- }
- leaf default-scs {
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- mandatory true;
-
- description
- "Sub-carrier spacing configuration";
- }
-
- list scs-specific-config {
- key scs;
- description
- "List of static scs-specific configurations";
- uses scs-config;
- }
-
-
- leaf cp-length {
- type uint32;
- description
- "CP length woud be determined by deployment types that has different
- delay spread requirements, and/or determined by frequency bands, service type
- or determined by whether beam forming technology is used or not";
- }
-
- }
-
- list tx-arrays {
- key name;
- config false;
- description
- "Object model for tx-arrays configuration";
-
- leaf name {
- type string;
- description
- "Unique name of tx-arrays object.";
- }
-
- leaf polarisation {
- type int8 {
- range "-45 | 0 | 45 | 90";
- }
- description
- "This parameter informing which polarization is served by particular antenna array
- as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg.
- Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning:
- either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band.
- Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected.";
- }
-
- leaf panel-id {
- type uint8;
- description
- "This parameter informing panel particular antenna array is built into.
- Intended use is to indicate if two orthogonal arrays occupy the same physical panel (e.g. as cross-polarized
- radiators) or if arrays of different polarizations are built into physically separated panels.";
- }
-
- leaf band-number {
- type leafref {
- path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
- }
- description
- "This parameter informing which frequency band particular antenna
- array is serving for.
- Intended use is to deal with multiband solutions.";
- }
- }
-
- list rx-arrays {
- key name;
- config false;
- description
- "Object model for rx-arrays configuration";
-
- leaf name {
- type string;
- description
- "Unique name of rx-arrays object.";
- }
-
- leaf polarisation {
- type int8 {
- range "-45 | 0 | 45 | 90";
- }
- description
- "This parameter informing which polarization is served by particular antenna array
- as per HW design. Expected values are +45 deg, -45 deg, 0 deg and 90 deg.
- Note: In case of multi-band RU orthogonality is assumed to exist per band, meaning:
- either pair of +45 deg and -45 deg or pair of 0 deg and 90 deg are expected per band.
- Non-orthogonal pairs like e.g 0 deg and +45 deg are not expected.";
- }
-
- leaf panel-id {
- type uint8;
- description
- "This parameter informing panel particular antenna array is built
- into.
- Intended use is to indicate if two orthogonal arrays occupy the same
- physical panel (e.g. as cross-polarized radiators) or if arrays of
- different polarizations are built into physically separated panels.";
- }
-
- leaf band-number {
- type leafref {
- path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
- }
- description
- "This parameter informing which frequency band particular antenna
- array is serving for.
- Intended use is to deal with multiband solutions.";
- }
- }
- }
-
- grouping scs-config {
- description
- "It groups all parameters related to SCS configuration";
-
- leaf scs {
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- description
- "Sub-carrier spacing configuration";
- }
- leaf offset-to-absolute-frequency-center {
- type int32;
- mandatory true;
- description
- "Offset to center-of-carrier-bandwidth. Mostly negative value. Granularity of this parameter is 0.5 SCS";
- }
-
- leaf number-of-prbs {
- type uint32;
- mandatory true;
- description
- "Number of physical resource blocks.";
- }
- }
-
-
-}
+++ /dev/null
-module xran-beamforming {
- yang-version 1.1;
- namespace "urn:xran:beamforming:1.0";
- prefix "xran-bf";
-
- import xran-uplane-conf {
- prefix up;
- }
-
- import xran-module-cap {
- prefix "mcap";
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the beamforming capabilitites of an RU.
- Only RUs that support beamforming shall support this module.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- feature MODIFY-BF-CONFIG {
- description
- "This feature indicates that the RU supports an optional feature to
- modify beamforming configuration information";
- }
-
- typedef beam-reference {
- type leafref {
- path "/xran-bf:beamforming-config/xran-bf:per-band-config/xran-bf:beam-information/xran-bf:beamforming-properties/xran-bf:beam-id";
- }
- description
- "This type is used by data models that need to reference a beam.";
- }
- container beamforming-config {
- config false;
- description
- "A set of configuration data for the RU's beam forming functionality";
-
- list per-band-config {
- key band-number;
- description "beamforming information per band";
- leaf band-number {
- type leafref {
- path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
- }
- description
- "band information for the beamforming information
- related to the band number of module capabilities";
- }
-
- leaf-list tx-array {
- type leafref {
- path "/up:user-plane-configuration/up:tx-arrays/up:name";
- }
- description "tx arrays belonging to this band number";
- }
- leaf-list rx-array {
- type leafref {
- path "/up:user-plane-configuration/up:rx-arrays/up:name";
- }
- description "rx arrays belonging to this band number";
- }
- container static-properties {
- description
- "the static beamforming related information";
- leaf beamforming-type {
- type enumeration {
- enum COMMON {
- description "A common beam ID is used for entire band";
- }
- enum DIFFERENT {
- description "Different beam IDs can be assigned for each PRB/RE";
- }
- }
- description
- "This value indicates supporting beamforming type in RU";
- }
-
- leaf number-of-beams {
- type uint16;
- description
- "This value indicates the number of beam patterns RU can generate
- and apply to the signal of each RU port (both DL and UL).
- This value is equivalent to the maximum number of used beam IDs.";
- }
-
- leaf number-of-polarizations {
- type uint8;
- description
- "This value indicates the number of polarizations supported at RU.";
- }
-
- leaf number-of-panels {
- type uint8;
- description
- "This value indicates the number of antenna panels supported at RU.";
- }
- }
-
- container beam-information {
- description
- "beam information which relates to the current beamforming configuration";
- leaf number-of-beamforming-properties {
- type uint16;
- description
- "This parameter indicates the number of beamFormingProperties entries.";
- }
-
- list beamforming-properties {
- key beam-id;
- description
- "Array for the beamforming properties at RU.
- These parameters can be used by the beamforming control by the NETCONF client.
- 'numberOfBeamformingProperties' indicaets the size of the array.";
-
-
- leaf beam-id {
- type uint16;
- description
- "This value indicates the beam ID whose beamforming properties are
- described in the container.";
- }
-
- container beamforming-property {
- description
- "Structure containing single set of beamforming properties.";
-
- leaf coarse-fine {
- type enumeration {
- enum COARSE-BEAM {
- description "the beam-id corresponds to a coarse beam";
- }
- enum FINE-BEAM {
- description "the beam-id corresponds to a fine beam";
- }
- }
- description
- "This value indicates the beam resolution.";
- }
-
- leaf beam-groups-id {
- type uint16;
- description
- "Beams with same beamGroupsID can be transmitted simultaneously.";
- }
-
- leaf-list coarse-fine-beam-relation {
- type beam-reference;
- description
- "list of related coarse/fine beam.";
-
- }
-
- leaf-list neighbor-beam {
- type beam-reference;
- description
- "A list of neighbor beams which might restrict co-scheduling due
- to interference.";
- }
- }
- }
- }
- }
- container ue-specific-beamforming {
- presence
- "Indicates that the RU supports optional Section Type '6' Fields
- (used for sending channel information for a specific UE";
- config false;
- description
- "Information related to supput by the RU of Section Type 6 for
- signalling UE-specific channel information to the RU";
- leaf max-number-of-ues {
- type uint8;
- description
- "Indicates tha maximum number of UE -specific channel information
- data sets supported by the RU";
- }
- }
- container operational-properties {
- if-feature MODIFY-BF-CONFIG;
- description "properties for dynamic beam weight/attribute support";
-
- leaf number-of-writeable-beamforming-files {
- type uint8 {
- range "1 .. max";
- }
- mandatory true;
- description
- "This leaf indicates the maximum number of writeable beamforming files
- containing beamweights and/or attributes that the RU can store, taking
- into account the maximum number of beam-IDs as defined by 3GPP
- TS38.214 v15.x.x";
- }
-
- leaf update-bf-non-delete {
- type boolean;
- default false;
- description
- "When set to TRUE, indicates that an RU supports the capability
- to apply the modified beamforming weight information by using rpc
- activate-beamforming-weight without deletion of tx-array-carriers and
- rx-array-carriers in advance, i.e., to a deactivated carrier";
- }
-
- leaf persistent-bf-files {
- type boolean;
- default false;
- description
- "When set to TRUE, indicates that the RU supports the capability
- to store the modified beamforming weight information file in the
- reset persistent memory";
- }
- }
-
- leaf beamforming-trough-attributes-supported {
- type boolean;
- description
- "Informs if beamforming can be controlled providing attributes to RU
- (like angles, beamwidth).";
- }
-
- leaf beamforming-trough-ue-channel-info-supported {
- type boolean;
- description
- "Informs if beamforming can be controlled by UE information.";
- }
- }
-
- rpc activate-beamforming-config {
- if-feature MODIFY-BF-CONFIG;
- description
- "rpc to activate beamforming config information by indicating the file
- stored in the folder xRAN/beam-weights in advance";
- input {
- leaf beamforming-config-file {
- type string;
- mandatory true;
- description
- "file name stored in xRAN/beamforming/ folder is indicated";
- }
- leaf band-number {
- type leafref {
- path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
- }
- description
- "The band to which the beam configuration applies";
- }
- }
- output {
- leaf status {
- type enumeration {
- enum ACCEPTED {
- description "RU has accepted the beamforming weight/attribute file";
- }
- enum REJECTED {
- description
- "RU has rejected the beamforming weight/attribute file. The RU
- should then use the default beamforming file.";
- }
- }
- mandatory true;
- description "Status of activation of beamforming config information";
- }
- leaf error-message {
- when "../status='REJECTED'";
- type string;
- description
- "Detailed error Message when the status is rejected, e.g.,
- because new beam forming file is attempted to be applied to a
- carrier which is still active, or the beam-id does not exist.";
- }
- }
- }
-
- //notification statement
- notification beamforming-information-update {
- leaf band-number {
- type leafref {
- path "/mcap:module-capability/mcap:band-capabilities/mcap:band-number";
- }
- description
- "The band to which the beamforming information is updated";
- }
- description
- "this notification indicates that the beamforming properties are updated";
-
- }
-}
+++ /dev/null
-module xran-delay-management {
- yang-version 1.1;
- namespace "urn:xran:delay:1.0";
- prefix "xran-delay";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module covers off aspects of lls-CU to RU delay management,
- including config data related to RU transmission and reception
- windows.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- feature ADAPTIVE-RU-PROFILE {
- description
- "This feature indicates that the RU supports adaptive RU delay profile
- based on information provided by the NETCONF client.";
- }
-
- container delay-management {
- description "top level tree covering off lls-CU to RU delay management";
-
- list bandwidth-scs-delay-state {
- key "bandwidth subcarrier-spacing";
- description
- "Array of structures containing sets of parameters for delay management.";
-
- leaf bandwidth {
- type uint32 {
- range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 |
- 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000
- | 200000 | 400000" ;
- }
- units kilohertz;
- description
- "transmission bandwidth configuration in units of kHz -
- covering NBIoT through to New Radio - see 38.104";
- }
- leaf subcarrier-spacing {
- type uint32 {
- range "0 .. 240000 ";
- }
- units Hertz;
- description "subcarrier spacing in Hz";
- }
-
- container ru-delay-profile {
- config false;
- description "container for RU delay parameters";
- leaf t2a-min-up {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the minimum RU data processing delay between receiving IQ data
- message over the fronthaul interface and transmitting
- the corresponding first IQ sample at the antenna";
- }
- leaf t2a-max-up {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the earliest allowable time when a data packet is received before
- the corresponding first IQ sample is transmitted at the antenna";
- }
- leaf t2a-min-cp-dl {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the minimum RU data processing delay between receiving downlink
- real time control plane message over the fronthaul interface and
- transmitting the corresponding first IQ sample at the antenna";
- }
- leaf t2a-max-cp-dl {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the earliest allowable time when a downlink real time control message
- is received before the corresponding first IQ sample is transmitted at
- the antenna";
- }
- leaf tadv-cp-dl {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the time difference (advance) between the reception window for
- downlink real time Control messages and reception window for the
- corresponding IQ data messages.";
- }
- leaf ta3-min {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the minimum RU data processing delay between receiving an IQ sample
- at the antenna and transmitting the last data sample over the
- fronthaul interface";
- }
- leaf ta3-max {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the maximum RU data processing delay between receiving an IQ sample
- at the antenna and transmitting the first data sample over the
- fronthaul interface";
- }
- leaf t2a-min-cp-ul {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the minimum RU data processing delay between receiving real time
- up-link control plane message over the fronthaul interface and
- recieving the first IQ sample at the antenna";
- }
- leaf t2a-max-cp-ul {
- type uint32;
- units nanoseconds;
- mandatory true;
- description
- "the earliest allowable time when a real time up-link control message
- is received before the corresponding first IQ sample is received at
- the antenna";
- }
- }
- }
-
- container adaptive-delay-configuration {
- if-feature ADAPTIVE-RU-PROFILE;
- description "container for adaptive delay parameters";
- list bandwidth-scs-delay-state {
- key "bandwidth subcarrier-spacing";
- description
- "Array of structures containing sets of parameters for delay management.";
-
- leaf bandwidth {
- type uint32 {
- range "200 | 1400 | 3000 | 5000 | 10000 | 15000 | 20000 | 25000 |
- 30000 | 40000 | 50000 | 60000 | 70000 | 80000 | 90000 | 100000
- | 200000 | 400000" ;
- }
- units kilohertz;
- description
- "transmission bandwidth configuration in units of kHz -
- covering NBIoT through to New Radio - see 38.104";
- }
- leaf subcarrier-spacing {
- type uint32 {
- range "0 .. 240000 ";
- }
- units Hertz;
- description "subcarrier spacing in Hz";
- }
- container lls-cu-delay-profile {
- description
- "lls-CU provided delay profile for adaptive delay configuration";
- leaf t1a-max-up-lls-cu {
- type uint32;
- units nanoseconds;
- description
- "the earliest possible time which the lls-CU can support transmiting
- an IQ data message prior to transmission of the corresponding IQ
- samples at the antenna";
- }
- leaf tx-max-lls-cu {
- type uint32;
- units nanoseconds;
- description
- "The maximum amount of time which the lls-CU requires to transmit
- all downlink user plane IQ data message for a symbol";
- }
- leaf ta4-max-lls-cu {
- type uint32;
- units nanoseconds;
- description
- "the latest possible time which the lls-CU can support receiving the
- last uplink user plane IQ data message for a symbol.";
- }
- leaf rx-max-lls-cu {
- type uint32;
- units nanoseconds;
- description
- "The maximum time difference the lls-CU can support between
- receiving the first user plane IQ data message for a symbol and
- receiving the last user plane IQ data message for the same symbol";
- }
- }
- }
-
- container transport-delay {
- description
- "lls-CU provided transport-delay parameters";
- leaf t12-min {
- type uint32;
- units nanoseconds;
- description
- "the minimum measured delay between CU port-ID and RU port-ID";
- }
- leaf t34-min {
- type uint32;
- units nanoseconds;
- description
- "the minimum measured delay between RU port-ID and CU port-ID";
- }
-// additional leaf added by Samsung
- leaf t12-max {
- type uint32;
- units nanoseconds;
- description
- "the maximum measured delay between CU port-ID and RU port-ID";
- }
-// additional leaf added by Samsung
- leaf t34-max {
- type uint32;
- units nanoseconds;
- description
- "the maximum measured delay between RU port-ID and CU port-ID";
- }
- }
- }
- }
-}
+++ /dev/null
-module xran-module-cap {
- yang-version 1.1;
- namespace "urn:xran:module-cap:1.0";
- prefix "xran-module-cap";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the module capabilities for
- the xRAN Radio Unit.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- grouping compression-method-grouping {
- description
- "Grouping for compression method.";
-
- leaf compression-method {
- type enumeration {
- enum BLOCK_FLOATING_POINT {
- description
- "Block floating point compression and decompression will be used";
- }
-
- enum BLOCK_SCALING {
- description
- "Block scaling compression and decompresion will be used";
- }
-
- enum U_LAW {
- description
- "u-Law compression and decompresion method will be used";
- }
-
- enum BEAMSPACE {
- description
- "Beamspace compression and decompression will be used";
- }
-
- enum MODULATION {
- description
- "Modulation compression and decompression will be used";
- }
- }
- description
- "Compresion method which can be supported by the RU";
- }
- }
-
- container module-capability {
- config false;
- description
- "module capability object responsible for providing module capability.";
-
- container ru-capabilities {
- description
- "Structure representing set of capabilities.";
-
- leaf ru-supported-category {
- type enumeration {
- enum CAT_A {
- description
- "Informs that precoding is supported in lls-CU";
- }
- enum CAT_B {
- description
- "Informs that precoding is supported in RU";
- }
- }
-
- description
- "Informs about which category RU supports";
- }
-
- leaf number-of-ru-ports {
- type uint8;
- description
- "This value indicates the maximum number of simultaneous beams per RU.
- This value is derived by the products of “numberOfPolarizations” and “numberOfPanels”
- and “the maximum number of simultaneous beams per sub-carrier”.";
- }
-
- leaf number-of-antenna-ports {
- type uint8;
- description
- "This value indicates the number of antenna ports supported at RU.
- This parameter is used by the precoding control between lls-CU and UE.
- This value conforms to 3GPP TS38.214, Section 5.2. Value 0 means “unused”.";
- }
-
- leaf max-power-per-pa-antenna {
- type decimal64{
- fraction-digits 4;
- }
- description
- "This value indicates Maximum Power per PA per antenna. Value unit is dBm.";
- }
-
- leaf min-power-per-pa-antenna {
- type decimal64{
- fraction-digits 4;
- }
- description
- "This value indicates Minimum Power per PA per antenna. Value unit is dBm.";
- }
-
- leaf fronthaul-split-option {
- type uint8 {
- range "7";
- }
- description
- "This value indicates the Fronthaul Split Option, i.e., 2 or 7 in this release.";
- }
-
- container format-of-iq-sample {
- description
- "Indicates module capabilities about IQ samples";
-
- leaf dynamic-compression-supported {
- type boolean;
-
- description
- "Informs if radio supports dynamic compression method";
- }
-
- leaf-list supported-bitwidths {
- type uint8 {
- range "1..16";
- }
-
- description
- "List of supported bitwidths";
- }
-
- leaf realtime-variable-bit-width-supported {
- type boolean;
-
- description
- "Informs if RU supports realtime variable bit with";
- }
-
- list compression-method-supported {
- uses compression-method-grouping;
-
- description
- "List of supported compression methods by RU";
- }
-
- leaf variable-bit-width-per-channel-supported {
- when "/module-capability/ru-capabilities/format-of-iq-sample/realtime-variable-bit-width-supported = 'true'";
- type boolean;
-
- description
- "Informs if variable bit width per channel is supported or not";
- }
-
- leaf syminc-supported {
- type boolean;
-
- description
- "Informs if symbol number increment command in a C-Plane is
- supported or not";
- }
- }
-
- list ul-mixed-num-required-guard-rbs {
- key "scs-a scs-b";
- description
- "Required number of guard resource blocks for the combination of
- subcarrier spacing values for uplink";
- leaf scs-a{
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- description
- "Sub-carrier spacing configuration";
- }
- leaf scs-b{
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- description
- "Sub-carrier spacing configuration";
- }
- leaf number-of-guard-rbs-ul{
- type uint8;
- description
- "This value indicates the required number of guard resource blocks
- between the mixed numerologies, the RB using scs-a and the RB
- using scs-b. It's number is based on scs-a";
- }
- }
- list dl-mixed-num-required-guard-rbs {
- key "scs-a scs-b";
- description
- "Required number of guard resource blocks for the combination of
- subcarrier spacing values for downlink";
- leaf scs-a{
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- description
- "Sub-carrier spacing configuration";
- }
- leaf scs-b{
- type enumeration {
- enum KHZ_15 {
- value 0;
- description
- "15kHz sub carrier spacing";
- }
- enum KHZ_30 {
- value 1;
- description
- "30kHz sub carrier spacing";
- }
- enum KHZ_60 {
- value 2;
- description
- "60kHz sub carrier spacing";
- }
- enum KHZ_120 {
- value 3;
- description
- "120kHz sub carrier spacing";
- }
- enum KHZ_240 {
- value 4;
- description
- "240kHz sub carrier spacing";
- }
- enum KHZ_1_25 {
- value 12;
- description
- "1,25kHz sub carrier spacing";
- }
- enum KHZ_5 {
- value 14;
- description
- "5kHz sub carrier spacing";
- }
- }
- description
- "Sub-carrier spacing configuration";
- }
- leaf number-of-guard-rbs-dl{
- type uint8;
- description
- "This value indicates the required number of guard resource blocks
- between the mixed numerologies, the RB using scs-a and the RB
- using scs-b. It's number is based on scs-a";
- }
- }
- }
- list band-capabilities {
- key band-number;
- description
- "Capabilities that are needed to be defined per each band";
-
- leaf band-number {
- type uint16;
- description
- "Band number";
- }
-
- leaf max-supported-frequency-dl {
- type uint64;
- description
- "This value indicates Maximum supported downlink frequency. Value unit is Hz.";
- }
-
- leaf min-supported-frequency-dl {
- type uint64;
- description
- "This value indicates Minimum supported downlink frequency. Value unit is Hz.";
- }
-
- leaf max-supported-bandwidth-dl {
- type uint64;
- description
- "This value indicates Maximum total downlink bandwidth in module. Value unit is Hz.";
- }
-
- leaf max-num-carriers-dl {
- type uint32;
- description
- "This value indicates Maximum number of downlink carriers in module.";
- }
-
- leaf max-carrier-bandwidth-dl {
- type uint64;
- description
- "This value indicates Maximum bandwidth per downlink carrier. Value unit is Hz.";
- }
-
- leaf min-carrier-bandwidth-dl {
- type uint64;
- description
- "This value indicates Minimum bandwidth per downlink carrier. Value unit is Hz.";
- }
-
- leaf max-supported-frequency-ul {
- type uint64;
- description
- "This value indicates Maximum supported uplink frequency. Value unit is Hz.";
- }
-
- leaf min-supported-frequency-ul {
- type uint64;
- description
- "This value indicates Minimum supported uplink frequency. Value unit is Hz.";
- }
-
- leaf max-supported-bandwidth-ul {
- type uint64;
- description
- "This value indicates Maximum total uplink bandwidth in module. Value unit is Hz.";
- }
-
- leaf max-num-carriers-ul {
- type uint32;
- description
- "This value indicates Maximum number of uplink carriers in module.";
- }
-
- leaf max-carrier-bandwidth-ul {
- type uint64;
- description
- "This value indicates Maximum bandwidth per uplink carrier. Value unit is Hz.";
- }
-
- leaf min-carrier-bandwidth-ul {
- type uint64;
- description
- "This value indicates Minimum bandwidth per uplink carrier. Value unit is Hz.";
- }
-// leaf number-of-supported-streams {
-// when "/module-capability/ru-capabilities/ru-supported-category = 'CAT_A'"
-// type uint8;
-// description
-// "Number of supported spatial stream in case CAT-A is supported";
-// }
-// Fixed me if they are necessary.
-
- leaf max-num-component-carriers {
- type uint8;
- description "maximum number of component carriers supported by the RU";
- }
-
- leaf max-num-bands {
- type uint16;
- description "maximum number of bands supported by the RU";
- }
-
- leaf max-num-sectors {
- type uint8;
- description "maximum number of sectors supported by the RU";
- }
-
- leaf max-power-per-antenna {
- type decimal64{
- fraction-digits 4;
- }
- description
- "This value indicates Maximum Power per band per antenna. Value unit is dBm.";
- }
-
- leaf min-power-per-antenna {
- type decimal64{
- fraction-digits 4;
- }
- description
- "This value indicates Minimum Power per band per antenna. Value unit is dBm.";
- }
-
- leaf codebook-configuration_ng {
- type uint8;
- description
- "This parameter informs the precoder codebook_ng that are used for precoding";
- }
-
- leaf codebook-configuration_n1 {
- type uint8;
- description
- "This parameter informs the precoder codebook_n1 that are used for precoding";
- }
-
- leaf codebook-configuration_n2 {
- type uint8;
- description
- "This parameter informs the precoder codebook_n2 that are used for precoding";
- }
- }
- }
-}
+++ /dev/null
-xRAN Forum YANG Models
-
-xRAN has defined an open, interoperable and efficient fronthaul interface.
-The definition of this interface includes the xRAN control, user and
-synchronization (CUS) plane specification .
-
-To complement the CUS plane specification, xRAN has also defined the management
-plane specification . Significantly, the management plane specification uses
-NETCONF/YANG as the network management protocol and data modelling language.
-
-The M-Plane specification describes how to use a set of xRAN defined YANG models
-for managing the xRAN defined RU. This zip file contains the YANG models for
-the xRAN defined Radio Unit (RU).
-
-Directory of YANG models
-
-All revisions of YANG models are available in this directory, with the revision
-being embedded in the path for a particular model. For example all v1.0.0 models
-are available using the directory path
-
-http://www.xran.org/resources/yang/1-0-0/
-
-Under the directory, the is a zip file that contains several sub-directories
-used to organize the models according to the functionality they support:
-
- Interfaces: Covering models for handling the RU’s Ethernet and IP
- interfaces
- Operations: Covering models for operational aspects, including S/W,
- performance and file management
- Radio: Covering models used to support the CU Plane lower PHY
- functionality
- Sync: Covering models for synchronisation, including GNSS, PTP
- and SyncE
- System: Covering models for hardware management, NETCONF
- supervision, user account management and fan operation
-
-Validation
-
-The YANG files have been tested for compilation with pyang version 1.7.4.
-
-Known Issues
-
-A list of functionalities not currently supported by these YANG models is
-defined in the M-Plane specification.
-
-Future Revisions
-
-Revisions to these YANG models are expected to be made to correct errors and
-enable support for new functionalities. The YANG revisions statement will be
-used to describe those changes to the YANG model that are backwards compatible.
-Backwards incompatible changes will be addressed by using a major version number
-as part of the model name and namespace.
+++ /dev/null
-module xran-sync {
- yang-version 1.1;
- namespace "urn:xran:sync:1.0";
- prefix "xran-sync";
-
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines synchronization mechanism for the xRAN Radio Unit.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef geographic-coordinate-degree {
- type decimal64 {
- fraction-digits 8;
- }
- description
- "Decimal degree (DD) used to express latitude and longitude
- geographic coordinates.";
- }
-
- feature GNSS {
- description
- "This feature indicates that the RU supports integrated GNSS functionality.";
- }
-
- container sync {
- description
- "Main containter for sync related parameters";
-
- container sync-status {
- config false;
-
- description
- "Object of this class provides synchronization state of the module.";
-
- leaf sync-state {
- type enumeration {
- enum LOCKED {
- description
- "RU is in the locked mode, as defined in ITU-T G.810";
- }
- enum HOLDOVER {
- description
- "RU clock is in holdover mode";
- }
- enum FREERUN {
- description
- "RU clock isn’t locked to an input reference, and is not in the holdover mode";
- }
- }
- mandatory true;
- description
- "State of DU synchronization";
- }
-
- list supported-reference-types {
- key item;
- min-elements 1;
- description
- "Type of a synchronization supported source.";
- leaf item {
- type enumeration {
- enum GNSS {
- description
- "GPS can be taken as a synchronization source";
- }
- enum PTP {
- description
- "Precision Time Protocol can be taken as a synchronization source";
- }
- enum SYNCE {
- description
- "Synchronous Ethernet can be taken as a synchronization source";
- }
- }
- mandatory true;
-
- description
- "supported reference-type";
- }
- }
- }
-
- container sync-capability {
- config false;
-
- description
- "Object of this class provides synchronization capabilities of the module.";
-
- leaf sync-t-tsc {
- type enumeration {
- enum STANDARD {
- description
- "Standard accuracy for synchronization is supported by the device";
- }
- enum ENCHANCED {
- description
- "Enchanced accuracy for synchronization is supported by the device";
- }
- }
- mandatory true;
- description
- "This will provide information about T-TSC capability";
-
- reference "T-TSC: ITU-T G.8275.1/Y.1369.1";
- }
- }
-
- container ptp-config {
- description
- "This MO defines configuration of Precise Time Protocol.";
- leaf domain-number {
- type uint8;
- default 24;
- description
- "This parameter indicates Domain Number for PTP announce messages.";
- }
-
- leaf multicast-mac-address {
- type enumeration {
- enum FORWARDABLE {
- description
- "means, that PTP shall use 01-80-C2-00-00-0E destination MAC address";
- }
- enum NONFORWARDABLE {
- description
- "means, that PTP shall use 01-1B-19-00-00-00 destination MAC address";
- }
- }
- default FORWARDABLE;
- description
- "The parameter defines destination MAC address, used by the DU in the egress PTP messages.";
- }
-
- list accepted-clock-classes {
- key clock-classes;
- leaf clock-classes {
- type uint8;
- description
- "PTP Clock Class accepted by the RU";
- }
- description
- "Contains list of PTP acceptable Clock Classes, sorted in the descending order.";
- }
-
- leaf delay-asymmetry {
- type int16 {
- range -10000..10000;
- }
- default 0;
- description
- "Defines static phase error in the recovered PTP timing signal to be compensated at the RU.
- The error is defined in units of nanoseconds in the range ±10 000 ns.";
- }
- }
-
- container ptp-status {
- description
- "ptp status container";
- leaf reporting-period {
- type uint8;
- default 10;
- description
- "This parameter defines minimum period in seconds between reports,
- sent by the NETCONF Client, for parameters in this container.";
- }
- leaf lock-state {
- type enumeration {
- enum LOCKED {
- description
- "The integrated ordinary clock is synchronizing to the reference, recovered from PTP flow";
- }
- enum UNLOCKED {
- description
- "The integrated ordinary clock is not synchronizing to the reference, recovered from PTP flow";
- }
- }
- config false;
- description
- "This parameter indicates, whether the integrated ordinary clock is
- synchronizing to the reference, recovered from PTP signal.
- The exact definition when to indicate locked or unlocked is up to specific
- implementation.";
- }
-
- leaf clock-class {
- type uint8;
- config false;
- description
- "This parameter contains the clock class of the clock, controlled by the RU";
- }
-
- leaf clock-identity {
- type string {
- length 18;
- pattern "0[xX][0-9a-fA-F]";
- }
- config false;
- description
- "This parameter contains identity of the clock,
- according to IEEE 1588-2008 defintion, controlled by the RU.
- The string shall be formatted as an 8-octet hex value with the “0x” prefix.";
- }
-
- leaf partial-timing-supported {
- type boolean;
-
- description
- "Provides information wheter G.8275.2 (partial timing support from network) is supported.";
- }
-
- list sources {
- key local-port-number;
- config false;
-
- description
- "Synchronisation sources";
-
- leaf local-port-number {
- type uint16;
- // fixme - change to a leafref once interface design is agreed
- description
- "This is reference to portNumber of ExternalEthernetPort to identify the port,
- where the PTP signal is located.";
- }
-
- leaf state {
- type enumeration {
- enum PARENT {
- description
- "Indicates that this source is the current master clock, i.e. the clock,
- which the clock, controlled by the Netconf Server, is synchronized to";
- }
- enum OK {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, can potentially synchronize to,
- i.e. clock class and priority, announced by the master clock is lower,
- compared to those of the clock, controlled by the Netconf Server,
- and and the clock class is accepted";
- }
- enum NOK {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, has an operational connection to,
- but the class or priority of the master clock is higher or equal
- to those of the clock, controlled by the Netconf Server,
- or the clock class is not accepted";
- }
- enum DISABLED {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, has no operational connection to";
- }
- }
- description
- "This parameter indicates status of the PTP source";
- }
-
- leaf two-step-flag {
- type boolean;
- description
- "This parameter reflects status of the twoStepFlag attribute in Sync messages,
- received from the PTP source.";
- }
-
- leaf leap61 {
- type boolean;
- description
- "This parameter reflects status of the leap61 flag in Announce messages,
- received from the PTP source.
- When true, the last minute of the current UTC day contains 61 seconds.";
- }
-
- leaf leap59 {
- type boolean;
- description
- "This parameter reflects status of the leap59 flag in Announce messages,
- received from the PTP source.
- When true, the last minute of the current UTC day contains 59 seconds.";
- }
-
- leaf current-utc-offset-valid {
- type boolean;
- description
- "This parameter reflects status of the currentUtcOffsetValid flag in
- Announce messages, received from the PTP source.
- When true, the current UTC offset is valid.";
- }
-
- leaf ptp-timescale {
- type boolean;
- description
- "This parameter reflects status of the ptpTimescale flag in Announce
- messages, received from the PTP source.
-
- When set, the clock timescale of the grandmaster clock is PTP;
- otherwise, the timescale is ARB (arbitrary)";
- }
-
- leaf time-traceable {
- type boolean;
- description
- "This parameter reflects status of the timeTraceable flag in Announce
- messages, received from the PTP source.
-
- When true, the timescale and the currentUtcOffset are traceable to a
- primary reference";
- }
-
- leaf frequency-traceable {
- type boolean;
- description
- "This parameter reflects status of the frequencyTraceable flag in
- Announce messages, received from the PTP source.
-
- When true, the frequency determining the timescale is traceable to a
- primary reference";
- }
-
- leaf source-clock-identity {
- type string {
- length 18;
- pattern "0[xX][0-9a-fA-F]";
- }
- description
- "This parameter reflects value of the sourceClockIdentity attribute in
- Announce messages, received from the PTP source.
-
- The string shall be formatted as an 8-octet hex value with the “0x”
- prefix.";
- }
-
- leaf source-port-number {
- type uint16;
- description
- "This parameter reflects value of the sourcePortNumber attribute in
- Announce messages, received from the PTP source.";
- }
-
- leaf current-utc-offset {
- type int16;
- description
- "The offset between TAI and UTC when the epoch of the PTP system is
- the PTP epoch, i.e., when ptp-timescale is TRUE; otherwise, the value
- has no meaning";
- }
-
- leaf priority1 {
- type int8;
- description
- "This parameter reflects value of the priority1 attribute in Announce
- messages, received from the PTP source.";
- }
-
- leaf clock-class {
- type int8;
- description
- "This parameter reflects value of the clockClass attribute in
- Announce messages, received from the PTP source.";
- }
-
- leaf clock-accuracy {
- type int8;
- description
- "This parameter reflects value of the clockAccuracy attribute in
- Announce messages, received from the PTP source.";
- }
-
- leaf offset-scaled-log-variance {
- type uint16;
- description
- "This parameter reflects value of the offsetScaledLogVariance
- attribute in Announce messages, received from the PTP source.";
- }
-
- leaf priority2 {
- type uint8;
- description
- "This parameter reflects value of the priority2 attribute in Announce
- messages, received from the PTP source.";
- }
-
- leaf grandmaster-clock-identity {
- type string;
- description
- "This parameter reflects value of the grandmasterClockIdentity
- attribute in Announce messages, received from the PTP source.
-
- The string shall be formatted as an 8-octet hex value with the “0x”
- prefix.";
- }
-
- leaf steps-removed {
- type uint16;
- description
- "This parameter reflects value of the stepsRemoved attribute in
- Announce messages, received from the PTP source.
-
- It indicates the number of communication paths traversed
- between the local clock and the grandmaster clock.";
- }
-
- leaf time-source {
- type uint8;
- description
- "This parameter reflects value of the timeSource attribute in
- Announce messages, received from the PTP source.";
- }
- }
- }
-
- container synce-status {
- description
- "SyncE status container";
-
- leaf reporting-period {
- type uint8;
- default 10;
- description
- "This parameter defines minimum period in seconds between reports,
- sent by the NETCONF client, for parameters in this container.";
- }
-
- leaf lock-state {
- type enumeration {
- enum LOCKED {
- description
- "The integrated ordinary clock is synchronizing to the reference, recovered from SyncE signal";
- }
- enum UNLOCKED {
- description
- "The integrated ordinary clock is not synchronizing to the reference, recovered from SyncE signal";
- }
- }
- config false;
- description
- "This parameter indicates, whether the integrated ordinary clock is
- synchronizing to the reference, recovered from SyncE signal.
-
- The exact definition when to indicate locked or unlocked is up to
- specific implementation.";
- }
-
- list sources {
- key local-port-number;
- config false;
- leaf local-port-number {
- type uint16;
- //fixme - change to leafref once interfaces ae agreed
- description
- "This is reference to portNumber of ExternalEthernetPort to identify
- the port, where the SyncE signal is located.";
- }
-
- leaf state {
- type enumeration {
- enum PARENT {
- description
- "Indicates that this source is the current master clock, i.e. the clock,
- which the clock, controlled by the Netconf Server, is synchronized to";
- }
- enum OK {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, can potentially synchronize to,
- i.e. clock class and priority, announced by the master clock is lower,
- compared to those of the clock, controlled by the Netconf Server,
- and and the clock class is accepted";
- }
- enum NOK {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, has an operational connection to,
- but the class or priority of the master clock is higher or equal
- to those of the clock, controlled by the Netconf Server,
- or the clock class is not accepted";
- }
- enum DISABLED {
- description
- "Indicates that this source is an alternate master, which the clock,
- controlled by the Netconf Server, has no operational connection to";
- }
- }
- description
- "This parameter indicates status of the SyncE source";
- }
-
- leaf quality-level {
- type uint8 {
- range 0..15;
- }
- description
- "This parameter contains value of the SSM clock quality level,
- received in SSM messages from the SyncE source.";
- }
- min-elements 1;
- description
- "This parameter contains characteristics of SyncE sources of the clock, controlled by the RU.";
- }
- }
- container gnss-state {
- if-feature GNSS;
- config false;
- description
- "Provides information about state of gps receiver";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies a GNSS instance.
- This name may be used in fault management to refer to a
- fault source or affected object";
- }
- leaf gnss-status {
- type enumeration {
- enum SYNCHRONIZED {
- description "GNSS functionality is synchronized";
- }
- enum ACQUIRING-SYNC {
- description "GNSS functionality is acquiring sync";
- }
- enum ANTENNA-DISCONNECTED {
- description "GNSS functionality has its antenna disconnected";
- }
- enum BOOTING {
- description "GNSS functionality is booting";
- }
- enum ANTENNA-SHORT-CIRCUIT {
- description "GNSS functionality has an antenna short circuit";
- }
- }
- description "when available, indicates the status of the gnss receiver.";
- }
- container gnss-data {
- when "../gnss-status='SYNCHRONIZED'";
- description
- "GPS data contained";
- leaf satellites-tracked {
- type uint8;
- description "Number of satellites tracked";
- }
- container location {
- description
- "Containes information about geo location";
- leaf altitude {
- type int64;
- units millimeter;
- description
- "Distance above the sea level.";
- }
- leaf latitude {
- type geographic-coordinate-degree {
- range "-90..90";
- }
- description
- "Relative position north or south on the Earth's surface.";
- }
- leaf longitude {
- type geographic-coordinate-degree {
- range "-180..180";
- }
- description
- "Angular distance east or west on the Earth's surface.";
- }
- }
- }
- }
- }
-
- //notification statement
- notification synchronization-state-change {
- description
- "Notification used to inform about synchronization state change";
-
- leaf sync-state {
- type leafref {
- path "/sync/sync-status/sync-state";
- }
- description
- "State of RU synchronization is notified at state change";
- }
- }
-
- notification ptp-state-change {
- description
- "Notification used to inform about ptp synchronization state change";
-
- leaf ptp-state{
- type leafref{
- path "/sync/ptp-status/lock-state";
- }
- description
- "ptp-state-change notification is signalled from RU at state change";
- }
- }
- notification synce-state-change {
- description
- "Notification used to inform about synce synchronization state change";
-
- leaf synce-state{
- type leafref{
- path "/sync/synce-status/lock-state";
- }
- description
- "synce-state change notification is signalled from RU at state change";
- }
- }
- notification gnss-state-change {
- if-feature GNSS;
- description
- "Notification used to inform about gnss synchronization state change";
-
- leaf gnss-state{
- type leafref{
- path "/sync/gnss-state/gnss-status";
- }
- description
- "gnss-state-change notification is signalled from RU at state change";
- }
- }
-
-}
+++ /dev/null
-module xran-alarm-id {
- yang-version 1.1;
- namespace "urn:xran:alarms:1.0";
- prefix "xran-alarms";
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the alarm identities for the RU.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef alarm-id {
- type enumeration {
- enum XRAN_HIGH_TEMP_ALARM {
- value 1;
- description "A temperature is higher than expected";
- }
- enum XRAN_OVERHEATING_ALARM {
- value 2;
- description "A temperature is dangerously high";
- }
- enum XRAN_AMBIENT_TEMP_ALARM {
- value 3;
- description "A temperature related alarm due to ambient temperature
- value going outside the allowed ambient temperature range";
- }
- enum XRAN_TEMP_TOO_LOW_ALARM {
- value 4;
- description "A temperature related alarm due to the temperature inside
- the unit being too low";
- }
- enum XRAN_BROKEN_FAN_ALARM {
- value 5;
- description "A broken fan";
- }
- enum XRAN_FAN_NOT_DETECTED_ALARM {
- value 6;
- description "A fan not detected";
- }
- enum XRAN_TUNING_ALARM {
- value 7;
- description "A tuning failure.";
- }
- enum XRAN_FILTER_ALARM {
- value 8;
- description "A faulty filter.";
- }
- enum XRAN_TX_QUALITY_ALARM {
- value 9;
- description "A transmission quality.";
- }
- enum XRAN_OVERVOLTAGE_ALARM {
- value 10;
- description "A RF overvoltage protection.";
- }
- enum XRAN_CONFIG_ALARM {
- value 11;
- description "A configuration failed.";
- }
- enum XRAN_CRITICAL_FILE_ALARM {
- value 12;
- description "A Critical file not found.";
- }
- enum XRAN_FILE_ALARM {
- value 13;
- description "A non-critical file not found.";
- }
- enum XRAN_CORRUPT_FILE_ALARM {
- value 14;
- description "A corrupt configuration file.";
- }
- enum XRAN_OPERATION_ALARM {
- value 15;
- description "A unit out of order.";
- }
- enum XRAN_NO_IDENTITY_ALARM {
- value 16;
- description "A unit cannot be identified.";
- }
- enum XRAN_NO_EXT_SYNC_SOURCE {
- value 17;
- description "An RU has no external sync source.";
- }
- enum XRAN_SYNC_ALARM {
- value 18;
- description "A unit is out of synchronization.";
- }
- enum XRAN_TX_OUT_OF_ORDER_ALARM {
- value 19;
- description "A TX path is not usable.";
- }
- enum XRAN_RX_OUT_OF_ORDER_ALARM {
- value 20;
- description "A RX path is not usable.";
- }
- enum XRAN_OPTICAL_BER_ALARM {
- value 21;
- description "An increased bit error rate on the optical link";
- }
- enum XRAN_SELF_TEST_ALARM {
- value 22;
- description "A power-on self test";
- }
- enum XRAN_FPGA_UPDATE_ALARM {
- value 23;
- description "An FPGA software update";
- }
- enum XRAN_UNIT_BLOCKED_ALARM {
- value 24;
- description "A unit is blocked";
- }
- enum XRAN_RESET_REQUEST_ALARM {
- value 25;
- description "A unit requires a reset";
- }
- enum XRAN_POWER_SUPPLY_FAULTY {
- value 26;
- description "A power supply unit has a fault";
- }
- enum XRAN_POWER_AMPLIFIER_FAULTY {
- value 27;
- description "A power amplifier unit has a fault";
- }
- enum XRAN_C_U_PLANE_LOGICAL_CONNECTION_FAULTY {
- value 28;
- description "A C/U-plane logical connection has a fault";
- }
- enum XRAN_TRANSCEIVER_FAULT {
- value 29;
- description "A transceiver unit has a fault";
- }
- enum XRAN_INTERFACE_FAULT {
- value 30;
- description "An interface unit has a fault";
- }
- }
- description
- "A typedef defining an enumerated list of XRAN alarms which corresponds to
- the fault-id in the xran management plane specification.";
- }
-}
+++ /dev/null
-module xran-fan {
- yang-version 1.1;
- namespace "urn:xran:fan:1.0";
- prefix "xran-fan";
-
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the state of the RU's fans.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- typedef percent {
- type uint16 {
- range "0 .. 100";
- }
- description "Percentage";
- }
-
- container fan-tray {
- config false;
- description "top level tree covering off operational state of the fans";
- list fan-state {
- key name;
- description "a list of the fans based on their unique names";
- leaf name {
- type string {
- length "1..255";
- }
- description
- "A name that is unique across the RU that identifies a fan instance.
- This name may be used in fault management to refer to a fault source
- or affected object";
- }
- leaf fan-location {
- type uint8;
- description "A number indicating the location of the FAN in the fan tray";
- }
- leaf present-and-operating {
- type boolean;
- mandatory true;
- description
- "Indicates if a fan is present and operating in the location";
- }
- leaf vendor-code {
- when "../present-and-operating = 'true'";
- type uint8 {
- range "0..7";
- }
- description
- "Indicates fan vendor code. Fan vendors are detected with ID pins
- using 3 bits digital inputs.
-
- Optional node included when the NETCONF Server has determined
- the fan vendor code.";
- }
- leaf fan-speed {
- when "../present-and-operating = 'true'";
- type percent;
- description
- "Measured fan speed. Expressed as percentage of max fan speed.
-
- Optional node included when the fan speed can be measured.";
- }
- leaf target-speed {
- when "../present-and-operating = 'true'";
- type uint16;
- units rpm;
- description "the target speed of the fan";
- }
- }
- }
-}
+++ /dev/null
-module xran-fm {
- yang-version 1.1;
- namespace "urn:xran:fm:1.0";
- prefix "xran-fm";
-
- import ietf-yang-types {
- prefix yang;
- revision-date 2013-07-15;
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines alarm reporting mechanism.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- grouping alarm {
- description
- "Gropuping which can uniquely identify alarm";
-
- leaf fault-id {
- type uint16;
- mandatory true;
-
- description
- "Fault specific Id that identifies the fault.";
- }
-
- leaf fault-source {
- type string {
- length "1..255";
- }
- mandatory true;
-
- description
- "Represents the Object or source that is suspected to be faulty.";
- }
-
- list affected-objects {
- leaf name {
- type string {
- length "1..255";
- }
- mandatory true;
-
- description
- "Represents the Object or source that is suspected to be affected by this fault";
- }
- min-elements 1;
- max-elements 100;
-
- description
- "List of affected-objects";
- }
-
- leaf fault-severity {
- type enumeration {
- enum CRITICAL {
- description
- "Critical alarm means that this device is not able to perform any further service";
- }
- enum MAJOR {
- description
- "Major alarm appeared on the device";
- }
- enum MINOR {
- description
- "Minor alarm appeared on the device";
- }
- enum WARNING {
- description
- "Warning is being reported by the device";
- }
- }
- mandatory true;
-
- description
- "Fault severity defines the severity level of the fault. A notification, whose fault severity has the value 'warning',
- is a special type of an alarm notification. For these alarm notifications,
- the Master Agent does not expect to receive a clear alarm notification.";
- }
-
- leaf is-cleared {
- type boolean;
- mandatory true;
-
- description
- "Fault state determines the type of the event. Not used if faultSeverity is WARNING.";
- }
-
- leaf fault-text {
- type string {
- length "0..255";
- }
-
- description
- "Textual description of the fault.";
- }
-
- leaf event-time {
- type yang:date-and-time;
- mandatory true;
-
- description
- "Timestamp to indicate the time when the fault is detected/cleared.";
- }
- }
-
- container active-alarm-list {
- list active-alarms {
- uses alarm;
-
- description
- "List of currenty active alarms";
- }
- config false;
-
- description
- "List of currently active alarms. An alarm is removed from this table when the state transitions to clear.";
- }
-
- notification alarm-notif {
- uses alarm;
-
- description
- "Notification sent on initial alarm creation, as well as any time the alarm changes state, including clear";
- }
-}
+++ /dev/null
-module xran-hardware {
- yang-version 1.1;
- namespace "urn:xran:hardware:1.0";
- prefix "xran-hw";
-
- import ietf-hardware {
- prefix hw;
- }
- import iana-hardware {
- prefix ianahw;
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the YANG definitions for managng the xRAN Radio Unit
- hardware.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- feature ENERGYSAVING {
- description
- "Indicates that the Radio Unit supports energy saving state.";
- }
-
- // identity statements
- identity XRAN-RADIO {
- base ianahw:module;
- description
- "Module used as it represents a self-contained sub-system
- used in /hw:/hardware/hw:component/hw:class";
- }
-
- // typedef statements
- typedef energysaving-state {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report energy saving state.";
- }
- enum SLEEPING {
- description
- "The Radio Unit is in a sleep state. The NETCONF management plane
- connection is functioning. Other functions and hardware which are
- not needed for management plane may be in energy saving mode.";
- }
- enum AWAKE {
- description
- "The Radio Unit is not in an energy saving state.";
- }
- }
- description
- "new typedef since ietf-hardware only covers pwer-state
- for redundancy purposes and not power saving operations.";
- }
-
- typedef availability-type {
- type enumeration {
- enum UNKNOWN {
- description "The Radio Unit is unable to report its availability state.";
- }
- enum NORMAL {
- description
- "The RU is functioning correctly.";
- }
- enum DEGRADED {
- description
- "The RU may be reporting a major alarm or may be reporting a critical
- alarm that is only impacting one or more subcomponent, but where the
- RU's implementation permit it to continue operation (server traffic)
- in a degraded state.
-
- Used for example, when the RU has M identical sub-components and
- when a critical alarm is imapcting only N subcomponents, where N<M.";
- }
- enum FAULTY {
- description
- "The (sub-)components impacted by the critical alarm(s) impact the
- ability of the RU to continue operation (serve traffic).";
- }
- }
- description
- "RU’s availability-state is derived by matching active faults
- and their impact to module’s operation and enables an RU to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
-
- deviation /hw:hardware/hw:component/hw:name {
- description
- "Deviations for oryginal ietf-hardware/component/name to check if its pattern
- and length mathes xRAN limitation
-
- A name that is unique across the RU that identifies the RU instance.
- This name may be used in fault management to refer to a fault source or
- affected object corresponding to the generic RU.";
-
- deviate add {
- must "re-match(current(),'[a-zA-Z0-9]{1,255}')" {
- error-message "Name must match pattern and length.";
- }
- }
- }
-
- augment "/hw:hardware/hw:component" {
- when "derived-from-or-self(hw:class, 'XRAN-RADIO')";
- description "New xRAN parameters for xran hardware";
- container label-content {
- config false;
- description
- "Which set of attributes are printed on the Radio Unit's label";
- leaf model-name {
- type boolean;
- description
- "indicates whether model-name is included on the RU's label";
- }
- leaf serial-number {
- type boolean;
- description
- "indicates whether serial number is included on the RU's label";
- }
- // add in other leafs according to manufacturer feedback on labels
- }
- leaf product-code {
- type string;
- config false;
- description
- "xRAN term that is distinct from model-name in ietf-hardware.";
- }
- }
-
- augment "/hw:hardware/hw:component/hw:state" {
- when "derived-from-or-self(../hw:class, 'XRAN-RADIO')";
- description
- "new xRAN defined state";
- leaf power-state {
- if-feature "ENERGYSAVING";
- type energysaving-state;
- description
- "The current power saving state for this component.
- Note - hw:/hardware/compnent/state/standby-state defined in RFC 4268 is
- used for redundancy purposes and not power saving operations.";
- }
- leaf availability-state {
- type availability-type;
- config false;
- description
- "RU’s availability-state is derived by matching active faults
- and their impact to module’s operation and enables an RU to indicate
- that even though it may have one or more critical alarms, it can continue
- to serve traffic.";
- }
- }
-
- augment "/hw:hardware-state-oper-enabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/xran-hw:availability-state";
- }
- description
- "The availability-state of the RU.";
- }
- }
-
- augment "/hw:hardware-state-oper-disabled" {
- description "new availability state";
- leaf availability-state {
- type leafref {
- path "/hw:hardware/hw:component/hw:state/xran-hw:availability-state";
- }
- description
- "The availability-state of the RU.";
- }
- }
-}
+++ /dev/null
-module xran-supervision {\r
- yang-version 1.1;\r
- namespace "urn:xran:supervision:1.0";\r
- prefix "xran-supervision";\r
-\r
- import ietf-yang-types {\r
- prefix yang;\r
- }\r
-\r
- organization "xRAN Forum";\r
-\r
- contact\r
- "www.xran.org";\r
-\r
- description\r
- "This module defines the configuration data and supervision RPCs that are\r
- used by the NETCONF client and NETCONF server to detect loss of NETCONF\r
- connectivity.\r
-\r
- Copyright 2018 the xRAN Forum.\r
-\r
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\r
- AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE\r
- LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
- CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF\r
- SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN\r
- CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)\r
- ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE\r
- POSSIBILITY OF SUCH DAMAGE.\r
-\r
- Redistribution and use in source and binary forms, with or without\r
- modification, are permitted provided that the following conditions are met:\r
-\r
- * Redistributions of source code must retain the above copyright notice,\r
- this list of conditions and the above disclaimer.\r
- * Redistributions in binary form must reproduce the above copyright notice,\r
- this list of conditions and the above disclaimer in the documentation\r
- and/or other materials provided with the distribution.\r
- * Neither the Members of the xRAN Forum nor the names of its\r
- contributors may be used to endorse or promote products derived from\r
- this software without specific prior written permission.";\r
-\r
- revision "2018-07-20" {\r
- description\r
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.\r
-\r
- This version of the model supports v01.00 of the corrsponding xRAN\r
- M-Plane Specification.";\r
- reference "XRAN-FH.MP.0-v01.00";\r
- }\r
-\r
- rpc supervision-watchdog-reset {\r
- description\r
- "rpc to reset the watchdog timer";\r
- input {\r
-\r
- leaf supervision-notification-interval {\r
- type uint16;\r
- units seconds;\r
- default 60;\r
- description\r
- "The interval in seconds at which supervision notifications are sent.\r
- If not specified the default value of 60 seconds shall apply.";\r
- }\r
- leaf guard-timer-overhead {\r
- type uint16;\r
- units seconds;\r
- default 10;\r
- description\r
- "This is overhead added to the supervision timer used to calculate the\r
- supervision wathcdog timer. i.e.,\r
-\r
- supervision timer = notification timer + guard-timer-overhead\r
-\r
- If not specified the default value of 10 seconds shall apply.\r
-\r
- Failure to send this rpc again within the timeout sets the radio into\r
- 'loss of supervision' state.\r
-\r
- NOTE - The supervision timer MUST not be less that the confimed\r
- timeout timer (when the feature is supported).\r
-\r
- This type of constraint (using an RPCs input) cannot be formally\r
- expressed in YANG.";\r
- }\r
- }\r
- }\r
-\r
- notification supervision-notification {\r
- description\r
- "Notification to indicate that NETCONF management interface is up\r
- and also indicate the values of the timers for this NETCONF session";\r
-\r
- leaf next-update-at {\r
- type yang:date-and-time;\r
- description\r
- "Indicates the time when the next supervision notification is expected.";\r
- }\r
- }\r
-}\r
+++ /dev/null
-module xran-usermgmt {
- yang-version 1.1;
- namespace "urn:xran:user-mgmt:1.0";
- prefix "xran-usermgmt";
-
- // import openroadm user management
- import org-openroadm-user-mgmt {
- prefix openroadm;
- revision-date 2017-12-15;
- }
-
- organization "xRAN Forum";
-
- contact
- "www.xran.org";
-
- description
- "This module defines the user management model for the xRAN Radio Unit.
- The model is an augmentation of the user management model defined by
- the openroadm MSA.
-
- Copyright 2018 the xRAN Forum.
-
- 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 xRAN Forum nor the names of its
- contributors may be used to endorse or promote products derived from
- this software without specific prior written permission.";
-
- revision "2018-07-20" {
- description
- "version 1.0.0 - First release of the xRAN YANG M-Plane models.
-
- This version of the model supports v01.00 of the corrsponding xRAN
- M-Plane Specification.";
- reference "XRAN-FH.MP.0-v01.00";
- }
-
- grouping extended-xran-groups {
- description
- "New user permissions defined by xran.
- Imported openroadm model only supports 'sudo' superuser permissions.";
- leaf-list xran-group {
- type enumeration {
- enum nms {
- description "Network Management System permissions";
- }
- enum fm-pm {
- description
- "permissions for fault and performance management.";
- }
- enum swm {
- description
- "permissions for software managemet.";
- }
- }
- description
- "new group privileges defined by xRAN - a non sudo account may have
- multiple group privileges.
-
- See the xRAN management Plane specification for a list of YANG module
- privileges";
- }
- }
-
- container xran-user-profile {
- description "baseline open-roadm user profile";
- uses openroadm:user-profile;
- }
-
- augment "/xran-usermgmt:xran-user-profile/xran-usermgmt:user" {
- description "add in new xran user group permissions";
- uses extended-xran-groups;
- leaf enabled {
- type boolean;
- must "count(../enabled='true') > 0" {
- error-message "At least one account needs to be enabled.";
- }
- description
- "Indicates whether an account is enabled or disabled.";
- }
- }
-}
+++ /dev/null
-module iana-hardware {
-yang-version 1.1;
-namespace "urn:ietf:params:xml:ns:yang:iana-hardware";
-prefix ianahw;
-
-organization "IANA";
-contact
- " Internet Assigned Numbers Authority
- Postal: ICANN
- 12025 Waterfront Drive, Suite 300
- Los Angeles, CA 90094-2536
- United States of America
- Tel: +1 310 301 5800
- E-Mail: iana@iana.org>";
-
-description
- "IANA-defined identities for hardware class.
- The latest revision of this YANG module can be obtained from
- the IANA website.
- Requests for new values should be made to IANA via
- email (iana@iana.org).
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- The initial version of this YANG module is part of RFC 8348;
- see the RFC itself for full legal notices.";
-reference
- "https://www.iana.org/assignments/yang-parameters";
-
-revision 2018-03-13 {
- description
- "Initial revision.";
- reference
- "RFC 8348: A YANG Data Model for Hardware Management";
-}
-
-/*
- * Identities
- */
-
-identity hardware-class {
- description
- "This identity is the base for all hardware class
- identifiers.";
-}
-
-identity unknown {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is unknown
- to the server.";
-}
-
-identity chassis {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is an
- overall container for networking equipment. Any class of
- physical component, except a stack, may be contained within a
- chassis; a chassis may only be contained within a stack.";
-}
-
-identity backplane {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of device for aggregating and forwarding networking traffic,
- such as a shared backplane in a modular ethernet switch. Note
- that an implementation may model a backplane as a single
- physical component, which is actually implemented as multiple
- discrete physical components (within a chassis or stack).";
-}
-
-identity container {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is capable
- of containing one or more removable physical entities,
- possibly of different types. For example, each (empty or
- full) slot in a chassis will be modeled as a container. Note
- that all removable physical components should be modeled
- within a container component, such as field-replaceable
- modules, fans, or power supplies. Note that all known
- containers should be modeled by the agent, including empty
- containers.";
-}
-
-identity power-supply {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is a
- power-supplying component.";
-}
-
-identity fan {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is a fan or
- other heat-reduction component.";
-}
-
-identity sensor {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of sensor, such as a temperature sensor within a router
- chassis.";
-}
-
-identity module {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of self-contained sub-system. If a module component is
- removable, then it should be modeled within a container
- component; otherwise, it should be modeled directly within
- another physical component (e.g., a chassis or another
- module).";
-}
-
-identity port {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of networking port capable of receiving and/or transmitting
- networking traffic.";
-}
-
-identity stack {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of super-container (possibly virtual) intended to group
- together multiple chassis entities. A stack may be realized
- by a virtual cable, a real interconnect cable attached to
- multiple chassis, or multiple interconnect cables. A stack
- should not be modeled within any other physical components,
- but a stack may be contained within another stack. Only
- chassis components should be contained within a stack.";
-}
-
-identity cpu {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of central processing unit.";
-}
-
-identity energy-object {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of energy object, i.e., it is a piece of equipment that is
- part of or attached to a communications network that is
- monitored, it is controlled, or it aids in the management of
- another device for Energy Management.";
-}
-
-identity battery {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of battery.";
-}
-
-identity storage-drive {
- base ianahw:hardware-class;
- description
- "This identity is applicable if the hardware class is some sort
- of component with data storage capability as its main
- functionality, e.g., hard disk drive (HDD), solid-state device
- (SSD), solid-state hybrid drive (SSHD), object storage device
- (OSD), or other.";
-}
-}
+++ /dev/null
-module ietf-alarms {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-alarms";
- prefix al;
-
- import ietf-yang-types {
- prefix yang;
- reference
- "RFC 6991: Common YANG Data Types.";
- }
-
- organization
- "IETF CCAMP Working Group";
- contact
- "WG Web: <https://trac.ietf.org/trac/ccamp>
- WG List: <mailto:ccamp@ietf.org>
-
- Editor: Stefan Vallin
- <mailto:stefan@wallan.se>
-
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
- description
- "This module defines an interface for managing alarms. Main
- inputs to the module design are the 3GPP Alarm Integration
- Reference Point (IRP), ITU-T X.733, and ANSI/ISA-18.2 alarm
- standards.
-
- Main features of this module include:
-
- * Alarm list:
- A list of all alarms. Cleared alarms stay in
- the list until explicitly purged.
-
- * Operator actions on alarms:
- Acknowledging and closing alarms.
-
- * Administrative actions on alarms:
- Purging alarms from the list according to specific
- criteria.
-
- * Alarm inventory:
- A management application can read all
- alarm types implemented by the system.
-
- * Alarm shelving:
- Shelving (blocking) alarms according
- to specific criteria.
-
- * Alarm profiles:
- A management system can attach further
- information to alarm types, for example,
- overriding system-default severity
- levels.
-
- This module uses a stateful view on alarms. An alarm is a state
- for a specific resource (note that an alarm is not a
- notification). An alarm type is a possible alarm state for a
- resource. For example, the tuple:
-
- ('link-alarm', 'GigabitEthernet0/25')
-
- is an alarm of type 'link-alarm' on the resource
- 'GigabitEthernet0/25'.
-
- Alarm types are identified using YANG identities and an optional
- string-based qualifier. The string-based qualifier allows for
- dynamic extension of the statically defined alarm types. Alarm
- types identify a possible alarm state and not the individual
- notifications. For example, the traditional 'link-down' and
- 'link-up' notifications are two notifications referring to the
- same alarm type 'link-alarm'.
-
- With this design, there is no ambiguity about how alarm and
- alarm clear correlation should be performed; notifications that
- report the same resource and alarm type are considered updates
-
- of the same alarm, e.g., clearing an active alarm or changing
- the severity of an alarm. The instrumentation can update the
- severity and alarm text on an existing alarm. The above alarm
- example can therefore look like the following:
-
- (('link-alarm', 'GigabitEthernet0/25'),
- warning,
- 'interface down while interface admin state is up')
-
- There is a clear separation between updates on the alarm from
- the underlying resource, like clear, and updates from an
- operator, like acknowledging or closing an alarm:
-
- (('link-alarm', 'GigabitEthernet0/25'),
- warning,
- 'interface down while interface admin state is up',
- cleared,
- closed)
-
- Administrative actions like removing closed alarms older than a
- given time is supported.
-
- This YANG module does not define how the underlying
- instrumentation detects and clears the specific alarms. That
- belongs to the Standards Development Organization (SDO) or
- enterprise that owns that specific technology.
-
- The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL
- NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
- 'MAY', and 'OPTIONAL' in this document are to be interpreted as
- described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
- they appear in all capitals, as shown here.
-
- Copyright (c) 2019 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
-
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject to
- the license terms contained in, the Simplified BSD License set
- forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
-
- This version of this YANG module is part of RFC 8632; see
- the RFC itself for full legal notices.";
-
- revision 2019-09-11 {
- description
- "Initial revision.";
- reference
- "RFC 8632: A YANG Data Model for Alarm Management";
- }
-
- /*
- * Features
- */
-
- feature operator-actions {
- description
- "This feature indicates that the system supports operator
- states on alarms.";
- }
-
- feature alarm-shelving {
- description
- "This feature indicates that the system supports shelving
- (blocking) alarms.
-
- Alarm shelving may have an impact on server processing
- resources in order to match alarms against shelf
- criteria.";
- }
-
- feature alarm-history {
- description
- "This feature indicates that the server maintains a history
- of state changes for each alarm. For example, if an alarm
- toggles between cleared and active 10 times, these state
- changes are present in a separate list in the alarm.
-
- Keeping the alarm history may have an impact on server
- memory resources.";
- }
-
- feature alarm-summary {
- description
- "This feature indicates that the server summarizes the number
- of alarms per severity and operator state.";
- }
-
- feature alarm-profile {
- description
- "The system enables clients to configure further information
- to each alarm type.";
- }
-
- feature severity-assignment {
- description
- "The system supports configurable alarm severity levels.";
- reference
- "ITU-T Recommendation M.3100:
- Generic network information model
- ITU-T Recommendation M.3160:
- Generic, protocol-neutral management information model";
- }
-
- feature root-cause-analysis {
- description
- "The system supports identifying candidate root-cause
- resources for an alarm, for example, a disk partition
- root cause for a logger failure alarm.";
- }
-
- feature service-impact-analysis {
- description
- "The system supports identifying candidate-impacted
- resources for an alarm, for example, an interface state change
- resulting in a link alarm, which can refer to a link as being
- impacted.";
- }
-
- feature alarm-correlation {
- description
- "The system supports correlating/grouping alarms
- that belong together.";
- }
-
- /*
- * Identities
- */
-
- identity alarm-type-id {
- description
- "Base identity for alarm types. A unique identification of
- the alarm, not including the resource. Different resources
- can share alarm types. If the resource reports the same
- alarm type, it is considered to be the same alarm. The alarm
- type is a simplification of the different X.733 and 3GPP Alarm
- IRP correlation mechanisms, and it allows for
- hierarchical extensions.
-
- A string-based qualifier can be used in addition to the
- identity in order to have different alarm types based on
- information not known at design time, such as values in
-
- textual SNMP Notification varbinds.
-
- Standards and vendors can define sub-identities to clearly
- identify specific alarm types.
-
- This identity is abstract and MUST NOT be used for alarms.";
- }
-
- /*
- * Common types
- */
-
- typedef resource {
- type union {
- type instance-identifier {
- require-instance false;
- }
- type yang:object-identifier;
- type string;
- type yang:uuid;
- }
- description
- "This is an identification of the alarming resource, such as an
- interface. It should be as fine-grained as possible to both
- guide the operator and guarantee uniqueness of the alarms.
-
- If the alarming resource is modeled in YANG, this type will
- be an instance-identifier.
-
- If the resource is an SNMP object, the type will be an
- 'object-identifier'.
-
- If the resource is anything else, for example, a distinguished
- name or a Common Information Model (CIM) path, this type will
- be a string.
-
- If the alarming object is identified by a Universally Unique
- Identifier (UUID), use the uuid type. Be cautious when using
- this type, since a UUID is hard to use for an operator.
-
- If the server supports several models, the precedence should
- be in the order as given in the union definition.";
- }
-
- typedef resource-match {
- type union {
- type yang:xpath1.0;
- type yang:object-identifier;
- type string;
- }
- description
- "This type is used to match resources of type 'resource'.
- Since the type 'resource' is a union of different types, the
- 'resource-match' type is also a union of corresponding types.
-
- If the type is given as an XPath 1.0 expression, a resource
- of type 'instance-identifier' matches if the instance is part
- of the node set that is the result of evaluating the XPath 1.0
- expression. For example, the XPath 1.0 expression:
-
- /ietf-interfaces:interfaces/ietf-interfaces:interface
- [ietf-interfaces:type='ianaift:ethernetCsmacd']
-
- would match the resource instance-identifier:
-
- /if:interfaces/if:interface[if:name='eth1'],
-
- assuming that the interface 'eth1' is of type
- 'ianaift:ethernetCsmacd'.
-
- If the type is given as an object identifier, a resource of
- type 'object-identifier' matches if the match object
- identifier is a prefix of the resource's object identifier.
- For example, the value:
-
- 1.3.6.1.2.1.2.2
-
- would match the resource object identifier:
-
- 1.3.6.1.2.1.2.2.1.1.5
-
- If the type is given as an UUID or a string, it is interpreted
- as an XML Schema regular expression, which matches a resource
- of type 'yang:uuid' or 'string' if the given regular
- expression matches the resource string.
-
- If the type is given as an XPath expression, it is evaluated
- in the following XPath context:
-
- o The set of namespace declarations is the set of prefix
- and namespace pairs for all YANG modules implemented by
- the server, where the prefix is the YANG module name and
- the namespace is as defined by the 'namespace' statement
- in the YANG module.
-
- If a leaf of this type is encoded in XML, all namespace
-
- declarations in scope on the leaf element are added to
- the set of namespace declarations. If a prefix found in
- the XML is already present in the set of namespace
- declarations, the namespace in the XML is used.
-
- o The set of variable bindings is empty.
-
- o The function library is the core function library, and
- the functions are defined in Section 10 of RFC 7950.
-
- o The context node is the root node in the data tree.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
-
- typedef alarm-text {
- type string;
- description
- "The string used to inform operators about the alarm. This
- MUST contain enough information for an operator to be able to
- understand the problem and how to resolve it. If this string
- contains structure, this format should be clearly documented
- for programs to be able to parse that information.";
- }
-
- typedef severity {
- type enumeration {
- enum indeterminate {
- value 2;
- description
- "Indicates that the severity level could not be
- determined. This level SHOULD be avoided.";
- }
- enum warning {
- value 3;
- description
- "The 'warning' severity level indicates the detection of a
- potential or impending service-affecting fault, before any
- significant effects have been felt. Action should be
- taken to further diagnose (if necessary) and correct the
- problem in order to prevent it from becoming a more
- serious service-affecting fault.";
- }
- enum minor {
- value 4;
- description
- "The 'minor' severity level indicates the existence of a
- non-service-affecting fault condition and that corrective
- action should be taken in order to prevent a more serious
- (for example, service-affecting) fault. Such a severity
- can be reported, for example, when the detected alarm
- condition is not currently degrading the capacity of the
- resource.";
- }
- enum major {
- value 5;
- description
- "The 'major' severity level indicates that a service-
- affecting condition has developed and an urgent corrective
- action is required. Such a severity can be reported, for
- example, when there is a severe degradation in the
- capability of the resource and its full capability must be
- restored.";
- }
- enum critical {
- value 6;
- description
- "The 'critical' severity level indicates that a service-
- affecting condition has occurred and an immediate
- corrective action is required. Such a severity can be
- reported, for example, when a resource becomes totally out
- of service and its capability must be restored.";
- }
- }
- description
- "The severity level of the alarm. Note well that the value
- 'clear' is not included. Whether or not an alarm is cleared
- is a separate boolean flag.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
-
- typedef severity-with-clear {
- type union {
- type enumeration {
- enum cleared {
- value 1;
- description
- "The alarm is cleared by the instrumentation.";
- }
- }
- type severity;
- }
- description
- "The severity level of the alarm including clear. This is used
- only in notifications reporting state changes for an alarm.";
- }
-
- typedef writable-operator-state {
- type enumeration {
- enum none {
- value 1;
- description
- "The alarm is not being taken care of.";
- }
- enum ack {
- value 2;
- description
- "The alarm is being taken care of. Corrective action not
- taken yet or has failed";
- }
- enum closed {
- value 3;
- description
- "Corrective action taken successfully.";
- }
- }
- description
- "Operator states on an alarm. The 'closed' state indicates
- that an operator considers the alarm being resolved. This is
- separate from the alarm's 'is-cleared' leaf.";
- }
-
- typedef operator-state {
- type union {
- type writable-operator-state;
- type enumeration {
- enum shelved {
- value 4;
- description
- "The alarm is shelved. Alarms in /alarms/shelved-alarms/
- MUST be assigned this operator state by the server as
- the last entry in the 'operator-state-change' list. The
- text for that entry SHOULD include the shelf name.";
- }
- enum un-shelved {
- value 5;
- description
- "The alarm is moved back to 'alarm-list' from a shelf.
- Alarms that are moved from /alarms/shelved-alarms/ to
- /alarms/alarm-list MUST be assigned this state by the
- server as the last entry in the 'operator-state-change'
- list. The text for that entry SHOULD include the shelf
- name.";
- }
- }
- }
- description
- "Operator states on an alarm. The 'closed' state indicates
- that an operator considers the alarm being resolved. This is
- separate from the alarm's 'is-cleared' leaf.";
- }
-
- /* Alarm type */
-
- typedef alarm-type-id {
- type identityref {
- base alarm-type-id;
- }
- description
- "Identifies an alarm type. The description of the alarm type
- id MUST indicate whether or not the alarm type is abstract.
- An abstract alarm type is used as a base for other alarm type
- ids and will not be used as a value for an alarm or be present
- in the alarm inventory.";
- }
-
- typedef alarm-type-qualifier {
- type string;
- description
- "If an alarm type cannot be fully specified at design time by
- 'alarm-type-id', this string qualifier is used in addition to
- fully define a unique alarm type.
-
- The definition of alarm qualifiers is considered to be part of
- the instrumentation and is out of scope for this module. An
- empty string is used when this is part of a key.";
- }
-
- /*
- * Groupings
- */
-
- grouping common-alarm-parameters {
- description
- "Common parameters for an alarm.
-
- This grouping is used both in the alarm list and in the
- notification representing an alarm-state change.";
- leaf resource {
- type resource;
- mandatory true;
- description
- "The alarming resource. See also 'alt-resource'. This could
- be, for example, a reference to the alarming interface";
- }
- leaf alarm-type-id {
- type alarm-type-id;
- mandatory true;
- description
- "This leaf and the leaf 'alarm-type-qualifier' together
- provide a unique identification of the alarm type.";
- }
- leaf alarm-type-qualifier {
- type alarm-type-qualifier;
- description
- "This leaf is used when the 'alarm-type-id' leaf cannot
- uniquely identify the alarm type. Normally, this is not the
- case, and this leaf is the empty string.";
- }
- leaf-list alt-resource {
- type resource;
- description
- "Used if the alarming resource is available over other
- interfaces. This field can contain SNMP OIDs, CIM paths, or
- 3GPP distinguished names, for example.";
- }
- list related-alarm {
- if-feature "alarm-correlation";
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "References to related alarms. Note that the related alarm
- might have been purged from the alarm list.";
- leaf resource {
- type leafref {
- path "/alarms/alarm-list/alarm/resource";
- require-instance false;
- }
- description
- "The alarming resource for the related alarm.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/alarm-list/alarm"
- + "[resource=current()/../resource]"
- + "/alarm-type-id";
- require-instance false;
- }
- description
- "The alarm type identifier for the related alarm.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/alarm-list/alarm"
- + "[resource=current()/../resource]"
- + "[alarm-type-id=current()/../alarm-type-id]"
- + "/alarm-type-qualifier";
- require-instance false;
- }
- description
- "The alarm qualifier for the related alarm.";
- }
- }
- leaf-list impacted-resource {
- if-feature "service-impact-analysis";
- type resource;
- description
- "Resources that might be affected by this alarm. If the
- system creates an alarm on a resource and also has a mapping
- to other resources that might be impacted, these resources
- can be listed in this leaf-list. In this way, the system
- can create one alarm instead of several. For example, if an
- interface has an alarm, the 'impacted-resource' can
- reference the aggregated port channels.";
- }
- leaf-list root-cause-resource {
- if-feature "root-cause-analysis";
- type resource;
- description
- "Resources that are candidates for causing the alarm. If the
- system has a mechanism to understand the candidate root
- causes of an alarm, this leaf-list can be used to list the
- root-cause candidate resources. In this way, the system can
- create one alarm instead of several. An example might be a
- logging system (alarm resource) that fails; the alarm can
- reference the file system in the 'root-cause-resource'
- leaf-list. Note that the intended use is not to also send
- an alarm with the 'root-cause-resource' as an alarming
- resource. The 'root-cause-resource' leaf-list is a hint and
- should not also generate an alarm for the same problem.";
- }
- }
-
- grouping alarm-state-change-parameters {
- description
- "Parameters for an alarm-state change.
-
- This grouping is used both in the alarm list's status-change
- list and in the notification representing an alarm-state
- change.";
- leaf time {
- type yang:date-and-time;
- mandatory true;
- description
- "The time the status of the alarm changed. The value
- represents the time the real alarm-state change appeared in
- the resource and not when it was added to the alarm
- list. The /alarm-list/alarm/last-changed MUST be set to the
- same value.";
- }
- leaf perceived-severity {
- type severity-with-clear;
- mandatory true;
- description
- "The severity of the alarm as defined by X.733. Note that
- this may not be the original severity since the alarm may
- have changed severity.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
- leaf alarm-text {
- type alarm-text;
- mandatory true;
- description
- "A user-friendly text describing the alarm-state change.";
- reference
- "ITU-T Recommendation X.733: Information Technology
- - Open Systems Interconnection
- - System Management: Alarm Reporting Function";
- }
- }
-
- grouping operator-parameters {
- description
- "This grouping defines parameters that can be changed by an
- operator.";
- leaf time {
- type yang:date-and-time;
- mandatory true;
- description
- "Timestamp for operator action on the alarm.";
- }
- leaf operator {
- type string;
- mandatory true;
- description
- "The name of the operator that has acted on this alarm.";
- }
- leaf state {
- type operator-state;
- mandatory true;
- description
- "The operator's view of the alarm state.";
- }
- leaf text {
- type string;
- description
- "Additional optional textual information provided by the
- operator.";
- }
- }
-
- grouping resource-alarm-parameters {
- description
- "Alarm parameters that originate from the resource view.";
- leaf is-cleared {
- type boolean;
- mandatory true;
- description
- "Indicates the current clearance state of the alarm. An
- alarm might toggle from active alarm to cleared alarm and
- back to active again.";
- }
- leaf last-raised {
- type yang:date-and-time;
- mandatory true;
- description
- "An alarm may change severity level and toggle between
- active and cleared during its lifetime. This leaf indicates
- the last time it was raised ('is-cleared' = 'false').";
- }
- leaf last-changed {
- type yang:date-and-time;
- mandatory true;
- description
- "A timestamp when the 'status-change' or
- 'operator-state-change' list was last changed.";
- }
- leaf perceived-severity {
- type severity;
- mandatory true;
- description
- "The last severity of the alarm.
-
- If an alarm was raised with severity 'warning' but later
- changed to 'major', this leaf will show 'major'.";
- }
- leaf alarm-text {
- type alarm-text;
- mandatory true;
- description
- "The last reported alarm text. This text should contain
- information for an operator to be able to understand the
- problem and how to resolve it.";
- }
- list status-change {
- if-feature "alarm-history";
- key "time";
- min-elements 1;
- description
- "A list of status-change events for this alarm.
-
- The entry with latest timestamp in this list MUST
- correspond to the leafs 'is-cleared', 'perceived-severity',
- and 'alarm-text' for the alarm.
-
- This list is ordered according to the timestamps of alarm
- state changes. The first item corresponds to the latest
- state change.
-
- The following state changes create an entry in this
- list:
- - changed severity (warning, minor, major, critical)
- - clearance status; this also updates the 'is-cleared'
- leaf
- - alarm-text update";
- uses alarm-state-change-parameters;
- }
- }
-
- grouping filter-input {
- description
- "Grouping to specify a filter construct on alarm information.";
- leaf alarm-clearance-status {
- type enumeration {
- enum any {
- description
- "Ignore alarm-clearance status.";
- }
- enum cleared {
- description
- "Filter cleared alarms.";
- }
- enum not-cleared {
- description
- "Filter not-cleared alarms.";
- }
- }
- mandatory true;
- description
- "The clearance status of the alarm.";
- }
- container older-than {
- presence "Age specification";
- description
- "Matches the 'last-status-change' leaf in the alarm.";
- choice age-spec {
- description
- "Filter using date and time age.";
- case seconds {
- leaf seconds {
- type uint16;
- description
- "Age expressed in seconds.";
- }
- }
- case minutes {
- leaf minutes {
- type uint16;
- description
- "Age expressed in minutes.";
- }
- }
- case hours {
- leaf hours {
- type uint16;
- description
- "Age expressed in hours.";
- }
- }
- case days {
- leaf days {
- type uint16;
- description
- "Age expressed in days.";
- }
- }
- case weeks {
- leaf weeks {
- type uint16;
- description
- "Age expressed in weeks.";
- }
- }
- }
- }
- container severity {
- presence "Severity filter";
- choice sev-spec {
- description
- "Filter based on severity level.";
- leaf below {
- type severity;
- description
- "Severity less than this leaf.";
- }
- leaf is {
- type severity;
- description
- "Severity level equal to this leaf.";
- }
- leaf above {
- type severity;
- description
- "Severity level higher than this leaf.";
- }
- }
- description
- "Filter based on severity.";
- }
- container operator-state-filter {
- if-feature "operator-actions";
- presence "Operator state filter";
- leaf state {
- type operator-state;
- description
- "Filter on operator state.";
- }
- leaf user {
- type string;
- description
- "Filter based on which operator.";
- }
- description
- "Filter based on operator state.";
- }
- }
-
- /*
- * The /alarms data tree
- */
-
- container alarms {
- description
- "The top container for this module.";
- container control {
- description
- "Configuration to control the alarm behavior.";
- leaf max-alarm-status-changes {
- type union {
- type uint16;
- type enumeration {
- enum infinite {
- description
- "The status-change entries are accumulated
- infinitely.";
- }
- }
- }
- default "32";
- description
- "The 'status-change' entries are kept in a circular list
- per alarm. When this number is exceeded, the oldest
- status change entry is automatically removed. If the
- value is 'infinite', the status-change entries are
- accumulated infinitely.";
- }
- leaf notify-status-changes {
- type enumeration {
- enum all-state-changes {
- description
- "Send notifications for all status changes.";
- }
- enum raise-and-clear {
- description
- "Send notifications only for raise, clear, and
- re-raise. Notifications for severity-level changes or
- alarm-text changes are not sent.";
- }
- enum severity-level {
- description
- "Only send notifications for alarm-state changes
- crossing the level specified in
- 'notify-severity-level'. Always send clear
- notifications.";
- }
- }
- must '. != "severity-level" or ../notify-severity-level' {
- description
- "When notify-status-changes is 'severity-level', a value
- must be given for 'notify-severity-level'.";
- }
- default "all-state-changes";
- description
- "This leaf controls the notifications sent for alarm status
- updates. There are three options:
-
- 1. Notifications are sent for all updates, severity-level
- changes, and alarm-text changes.
-
- 2. Notifications are only sent for alarm raise and clear.
-
- 3. Notifications are sent for status changes equal to or
- above the specified severity level. Clear
- notifications shall always be sent. Notifications
- shall also be sent for state changes that make an
- alarm less severe than the specified level.
-
- For example, in option 3, assume that the severity level
- is set to major and that the alarm has the following state
- changes:
-
- [(Time, severity, clear)]:
- [(T1, major, -), (T2, minor, -), (T3, warning, -),
- (T4, minor, -), (T5, major, -), (T6, critical, -),
- (T7, major. -), (T8, major, clear)]
-
- In that case, notifications will be sent at times
- T1, T2, T5, T6, T7, and T8.";
- }
- leaf notify-severity-level {
- when '../notify-status-changes = "severity-level"';
- type severity;
- description
- "Only send notifications for alarm-state changes crossing
- the specified level. Always send clear notifications.";
- }
- container alarm-shelving {
- if-feature "alarm-shelving";
- description
- "The 'alarm-shelving/shelf' list is used to shelve
- (block/filter) alarms. The conditions in the shelf
- criteria are logically ANDed. The first matching shelf is
- used, and an alarm is shelved only for this first match.
- Matching alarms MUST appear in the
- /alarms/shelved-alarms/shelved-alarm list, and
- non-matching /alarms MUST appear in the
- /alarms/alarm-list/alarm list. The server does not send
- any notifications for shelved alarms.
-
- The server MUST maintain states (e.g., severity
- changes) for the shelved alarms.
-
- Alarms that match the criteria shall have an
- operator state 'shelved'. When the shelf
- configuration removes an alarm from the shelf, the server
- shall add the operator state 'un-shelved'.";
- list shelf {
- key "name";
- ordered-by user;
- leaf name {
- type string;
- description
- "An arbitrary name for the alarm shelf.";
- }
- description
- "Each entry defines the criteria for shelving alarms.
- Criteria are ANDed. If no criteria are specified,
- all alarms will be shelved.";
- leaf-list resource {
- type resource-match;
- description
- "Shelve alarms for matching resources.";
- }
- list alarm-type {
- key "alarm-type-id alarm-type-qualifier-match";
- description
- "Any alarm matching the combined criteria of
- 'alarm-type-id' and 'alarm-type-qualifier-match'
- MUST be matched.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "Shelve all alarms that have an 'alarm-type-id' that
- is equal to or derived from the given
- 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier-match {
- type string;
- description
- "An XML Schema regular expression that is used to
- match an alarm type qualifier. Shelve all alarms
- that match this regular expression for the alarm
- type qualifier.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
- }
- leaf description {
- type string;
- description
- "An optional textual description of the shelf. This
- description should include the reason for shelving
- these alarms.";
- }
- }
- }
- }
- container alarm-inventory {
- config false;
- description
- "The 'alarm-inventory/alarm-type' list contains all possible
- alarm types for the system.
-
- If the system knows for which resources a specific alarm
- type can appear, it is also identified in the inventory.
- The list also tells if each alarm type has a corresponding
- clear state. The inventory shall only contain concrete
- alarm types.
-
- The alarm inventory MUST be updated by the system when new
- alarms can appear. This can be the case when installing new
- software modules or inserting new card types. A
- notification 'alarm-inventory-changed' is sent when the
- inventory is changed.";
- list alarm-type {
- key "alarm-type-id alarm-type-qualifier";
- description
- "An entry in this list defines a possible alarm.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "The statically defined alarm type identifier for this
- possible alarm.";
- }
- leaf alarm-type-qualifier {
- type alarm-type-qualifier;
- description
- "The optionally dynamically defined alarm type identifier
- for this possible alarm.";
- }
- leaf-list resource {
- type resource-match;
- description
- "Optionally, specifies for which resources the alarm type
- is valid.";
- }
- leaf will-clear {
- type boolean;
- mandatory true;
- description
- "This leaf tells the operator if the alarm will be
- cleared when the correct corrective action has been
- taken. Implementations SHOULD strive for detecting the
- cleared state for all alarm types.
-
- If this leaf is 'true', the operator can monitor the
- alarm until it becomes cleared after the corrective
- action has been taken.
-
- If this leaf is 'false', the operator needs to validate
- that the alarm is no longer active using other
- mechanisms. Alarms can lack a corresponding clear due
- to missing instrumentation or no logical
- corresponding clear state.";
- }
- leaf-list severity-level {
- type severity;
- description
- "This leaf-list indicates the possible severity levels of
- this alarm type. Note well that 'clear' is not part of
- the severity type. In general, the severity level
- should be defined by the instrumentation based on the
- dynamic state, rather than being defined statically by
- the alarm type, in order to provide a relevant severity
- level based on dynamic state and context. However, most
- alarm types have a defined set of possible severity
- levels, and this should be provided here.";
- }
- leaf description {
- type string;
- mandatory true;
- description
- "A description of the possible alarm. It SHOULD include
- information on possible underlying root causes and
- corrective actions.";
- }
- }
- }
- container summary {
- if-feature "alarm-summary";
- config false;
- description
- "This container gives a summary of the number of alarms.";
- list alarm-summary {
- key "severity";
- description
- "A global summary of all alarms in the system. The summary
- does not include shelved alarms.";
- leaf severity {
- type severity;
- description
- "Alarm summary for this severity level.";
- }
- leaf total {
- type yang:gauge32;
- description
- "Total number of alarms of this severity level.";
- }
- leaf not-cleared {
- type yang:gauge32;
- description
- "Total number of alarms of this severity level
- that are not cleared.";
- }
- leaf cleared {
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared.";
- }
- leaf cleared-not-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared but not closed.";
- }
- leaf cleared-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- cleared and closed.";
- }
- leaf not-cleared-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- not cleared but closed.";
- }
- leaf not-cleared-not-closed {
- if-feature "operator-actions";
- type yang:gauge32;
- description
- "For this severity level, the number of alarms that are
- not cleared and not closed.";
- }
- }
- leaf shelves-active {
- if-feature "alarm-shelving";
- type empty;
- description
- "This is a hint to the operator that there are active
- alarm shelves. This leaf MUST exist if the
- /alarms/shelved-alarms/number-of-shelved-alarms is > 0.";
- }
- }
- container alarm-list {
- config false;
- description
- "The alarms in the system.";
- leaf number-of-alarms {
- type yang:gauge32;
- description
- "This object shows the total number of
- alarms in the system, i.e., the total number
- of entries in the alarm list.";
- }
- leaf last-changed {
- type yang:date-and-time;
- description
- "A timestamp when the alarm list was last
- changed. The value can be used by a manager to
- initiate an alarm resynchronization procedure.";
- }
- list alarm {
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "The list of alarms. Each entry in the list holds one
- alarm for a given alarm type and resource. An alarm can
- be updated from the underlying resource or by the user.
- The following leafs are maintained by the resource:
- 'is-cleared', 'last-change', 'perceived-severity', and
- 'alarm-text'. An operator can change 'operator-state' and
- 'operator-text'.
-
- Entries appear in the alarm list the first time an alarm
- becomes active for a given alarm type and resource.
- Entries do not get deleted when the alarm is cleared.
- Clear status is represented as a boolean flag.
-
- Alarm entries are removed, i.e., purged, from the list by
- an explicit purge action. For example, purge all alarms
- that are cleared and in closed operator state that are
- older than 24 hours. Purged alarms are removed from the
- alarm list. If the alarm resource state changes after a
- purge, the alarm will reappear in the alarm list.
-
- Systems may also remove alarms based on locally configured
- policies; this is out of scope for this module.";
- uses common-alarm-parameters;
- leaf time-created {
- type yang:date-and-time;
- mandatory true;
- description
- "The timestamp when this alarm entry was created. This
- represents the first time the alarm appeared; it can
- also represent that the alarm reappeared after a purge.
- Further state changes of the same alarm do not change
- this leaf; these changes will update the 'last-changed'
- leaf.";
- }
- uses resource-alarm-parameters;
- list operator-state-change {
- if-feature "operator-actions";
- key "time";
- description
- "This list is used by operators to indicate the state of
- human intervention on an alarm. For example, if an
- operator has seen an alarm, the operator can add a new
- item to this list indicating that the alarm is
- acknowledged.";
- uses operator-parameters;
- }
- action set-operator-state {
- if-feature "operator-actions";
- description
- "This is a means for the operator to indicate the level
- of human intervention on an alarm.";
- input {
- leaf state {
- type writable-operator-state;
- mandatory true;
- description
- "Set this operator state.";
- }
- leaf text {
- type string;
- description
- "Additional optional textual information.";
- }
- }
- }
- notification operator-action {
- if-feature "operator-actions";
- description
- "This notification is used to report that an operator
- acted upon an alarm.";
- uses operator-parameters;
- }
- }
- action purge-alarms {
- description
- "This operation requests that the server delete entries
- from the alarm list according to the supplied criteria.
-
- Typically, this operation is used to delete alarms that
- are in closed operator state and older than a specified
- time.
-
- The number of purged alarms is returned as an output
- parameter.";
- input {
- uses filter-input;
- }
- output {
- leaf purged-alarms {
- type uint32;
- description
- "Number of purged alarms.";
- }
- }
- }
- action compress-alarms {
- if-feature "alarm-history";
- description
- "This operation requests that the server compress
- entries in the alarm list by removing all but the
- latest 'status-change' entry for all matching alarms.
- Conditions in the input are logically ANDed. If no
- input condition is given, all alarms are compressed.";
- input {
- leaf resource {
- type resource-match;
- description
- "Compress the alarms matching this resource.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/alarm-list/alarm/alarm-type-id";
- require-instance false;
- }
- description
- "Compress alarms with this 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/alarm-list/alarm/alarm-type-qualifier";
- require-instance false;
- }
- description
- "Compress the alarms with this
- 'alarm-type-qualifier'.";
- }
- }
- output {
- leaf compressed-alarms {
- type uint32;
- description
- "Number of compressed alarm entries.";
- }
- }
- }
- }
- container shelved-alarms {
- if-feature "alarm-shelving";
- config false;
- description
- "The shelved alarms. Alarms appear here if they match the
- criteria in /alarms/control/alarm-shelving. This list does
- not generate any notifications. The list represents alarms
- that are considered not relevant by the operator. Alarms in
- this list have an 'operator-state' of 'shelved'. This
- cannot be changed.";
- leaf number-of-shelved-alarms {
- type yang:gauge32;
- description
- "This object shows the total number of current
- alarms, i.e., the total number of entries
- in the alarm list.";
- }
- leaf shelved-alarms-last-changed {
- type yang:date-and-time;
- description
- "A timestamp when the shelved-alarm list was last changed.
- The value can be used by a manager to initiate an alarm
- resynchronization procedure.";
- }
- list shelved-alarm {
- key "resource alarm-type-id alarm-type-qualifier";
- description
- "The list of shelved alarms. Shelved alarms can only be
- updated from the underlying resource; no operator actions
- are supported.";
- uses common-alarm-parameters;
- leaf shelf-name {
- type leafref {
- path "/alarms/control/alarm-shelving/shelf/name";
- require-instance false;
- }
- description
- "The name of the shelf.";
- }
- uses resource-alarm-parameters;
- list operator-state-change {
- if-feature "operator-actions";
- key "time";
- description
- "This list is used by operators to indicate the state of
- human intervention on an alarm. For shelved alarms, the
- system has set the list item in the list to 'shelved'.";
- uses operator-parameters;
- }
- }
- action purge-shelved-alarms {
- description
- "This operation requests that the server delete entries from
- the shelved-alarm list according to the supplied criteria.
- In the shelved-alarm list, it makes sense to delete alarms
- that are not relevant anymore.
-
- The number of purged alarms is returned as an output
- parameter.";
- input {
- uses filter-input;
- }
- output {
- leaf purged-alarms {
- type uint32;
- description
- "Number of purged alarms.";
- }
- }
- }
- action compress-shelved-alarms {
- if-feature "alarm-history";
- description
- "This operation requests that the server compress entries
- in the shelved-alarm list by removing all but the latest
- 'status-change' entry for all matching shelved alarms.
- Conditions in the input are logically ANDed. If no input
- condition is given, all alarms are compressed.";
- input {
- leaf resource {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm/resource";
- require-instance false;
- }
- description
- "Compress the alarms with this resource.";
- }
- leaf alarm-type-id {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm"
- + "/alarm-type-id";
- require-instance false;
- }
- description
- "Compress alarms with this 'alarm-type-id'.";
- }
- leaf alarm-type-qualifier {
- type leafref {
- path "/alarms/shelved-alarms/shelved-alarm"
- + "/alarm-type-qualifier";
- require-instance false;
- }
- description
- "Compress the alarms with this
- 'alarm-type-qualifier'.";
- }
- }
- output {
- leaf compressed-alarms {
- type uint32;
- description
- "Number of compressed alarm entries.";
- }
- }
- }
- }
- list alarm-profile {
- if-feature "alarm-profile";
- key "alarm-type-id alarm-type-qualifier-match resource";
- ordered-by user;
- description
- "This list is used to assign further information or
- configuration for each alarm type. This module supports a
- mechanism where the client can override the system-default
- alarm severity levels. The 'alarm-profile' is also a useful
- augmentation point for specific additions to alarm types.";
- leaf alarm-type-id {
- type alarm-type-id;
- description
- "The alarm type identifier to match.";
- }
- leaf alarm-type-qualifier-match {
- type string;
- description
- "An XML Schema regular expression that is used to match the
- alarm type qualifier.";
- reference
- "XML Schema Part 2: Datatypes Second Edition,
- World Wide Web Consortium Recommendation
- REC-xmlschema-2-20041028";
- }
- leaf resource {
- type resource-match;
- description
- "Specifies which resources to match.";
- }
- leaf description {
- type string;
- mandatory true;
- description
- "A description of the alarm profile.";
- }
- container alarm-severity-assignment-profile {
- if-feature "severity-assignment";
- description
- "The client can override the system-default severity
- level.";
- reference
- "ITU-T Recommendation M.3100:
- Generic network information model
- ITU-T Recommendation M.3160:
- Generic, protocol-neutral management information model";
- leaf-list severity-level {
- type severity;
- ordered-by user;
- description
- "Specifies the configured severity level(s) for the
- matching alarm. If the alarm has several severity
- levels, the leaf-list shall be given in rising severity
- order. The original M3100/M3160 ASAP function only
- allows for a one-to-one mapping between alarm type and
- severity, but since YANG module supports stateful
- alarms, the mapping must allow for several severity
- levels.
-
- Assume a high-utilization alarm type with two thresholds
- with the system-default severity levels of threshold1 =
- warning and threshold2 = minor. Setting this leaf-list
- to (minor, major) will assign the severity levels as
- threshold1 = minor and threshold2 = major";
- }
- }
- }
- }
-
- /*
- * Notifications
- */
-
- notification alarm-notification {
- description
- "This notification is used to report a state change for an
- alarm. The same notification is used for reporting a newly
- raised alarm, a cleared alarm, or changing the text and/or
- severity of an existing alarm.";
- uses common-alarm-parameters;
- uses alarm-state-change-parameters;
- }
-
- notification alarm-inventory-changed {
- description
- "This notification is used to report that the list of possible
- alarms has changed. This can happen when, for example, a new
- software module is installed or a new physical card is
- inserted.";
- }
-}
+++ /dev/null
-module ietf-hardware {
-yang-version 1.1;
-namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";
-prefix hw;
-
-import ietf-inet-types {
- prefix inet;
-}
-import ietf-yang-types {
- prefix yang;
-}
-import iana-hardware {
- prefix ianahw;
-}
-
-organization
- "IETF NETMOD (Network Modeling) Working Group";
-
-contact
- "WG Web: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
- Editor: Andy Bierman
- <mailto:andy@yumaworks.com>
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>
- Editor: Jie Dong
- <mailto:jie.dong@huawei.com>
- Editor: Dan Romascanu
- <mailto:dromasca@gmail.com>";
-
-description
- "This module contains a collection of YANG definitions for
- managing hardware.
- This data model is designed for the Network Management Datastore
- Architecture (NMDA) defined in RFC 8342.
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- This version of this YANG module is part of RFC 8348; see
- the RFC itself for full legal notices.";
-
-revision 2018-03-13 {
- description
- "Initial revision.";
- reference
- "RFC 8348: A YANG Data Model for Hardware Management";
-}
-
-/*
- * Features
- */
-
-feature entity-mib {
- description
- "This feature indicates that the device implements
- the ENTITY-MIB.";
- reference
- "RFC 6933: Entity MIB (Version 4)";
-}
-
-feature hardware-state {
- description
- "Indicates that ENTITY-STATE-MIB objects are supported";
- reference
- "RFC 4268: Entity State MIB";
-}
-
-feature hardware-sensor {
- description
- "Indicates that ENTITY-SENSOR-MIB objects are supported";
- reference
- "RFC 3433: Entity Sensor Management Information Base";
-}
-
-/*
- * Typedefs
- */
-
-typedef admin-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report administrative state.";
- }
- enum locked {
- value 2;
- description
- "The resource is administratively prohibited from use.";
- }
- enum shutting-down {
- value 3;
- description
- "The resource usage is administratively limited to current
- instances of use.";
- }
- enum unlocked {
- value 4;
- description
- "The resource is not administratively prohibited from
- use.";
- }
- }
- description
- "Represents the various possible administrative states.";
- reference
- "RFC 4268: Entity State MIB - EntityAdminState";
-}
-
-typedef oper-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report its operational state.";
- }
- enum disabled {
- value 2;
- description
- "The resource is totally inoperable.";
- }
- enum enabled {
- value 3;
-
- description
- "The resource is partially or fully operable.";
- }
- enum testing {
- value 4;
- description
- "The resource is currently being tested and cannot
- therefore report whether or not it is operational.";
- }
- }
- description
- "Represents the possible values of operational states.";
- reference
- "RFC 4268: Entity State MIB - EntityOperState";
-}
-
-typedef usage-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report usage state.";
- }
- enum idle {
- value 2;
- description
- "The resource is servicing no users.";
- }
- enum active {
- value 3;
- description
- "The resource is currently in use, and it has sufficient
- spare capacity to provide for additional users.";
- }
- enum busy {
- value 4;
- description
- "The resource is currently in use, but it currently has no
- spare capacity to provide for additional users.";
- }
- }
- description
- "Represents the possible values of usage states.";
- reference
- "RFC 4268: Entity State MIB - EntityUsageState";
-}
-
-typedef alarm-state {
- type bits {
- bit unknown {
- position 0;
- description
- "The resource is unable to report alarm state.";
- }
- bit under-repair {
- position 1;
- description
- "The resource is currently being repaired, which, depending
- on the implementation, may make the other values in this
- bit string not meaningful.";
- }
- bit critical {
- position 2;
- description
- "One or more critical alarms are active against the
- resource.";
- }
- bit major {
- position 3;
- description
- "One or more major alarms are active against the
- resource.";
- }
- bit minor {
- position 4;
- description
- "One or more minor alarms are active against the
- resource.";
- }
- bit warning {
- position 5;
- description
- "One or more warning alarms are active against the
- resource.";
- }
- bit indeterminate {
- position 6;
- description
- "One or more alarms of whose perceived severity cannot be
- determined are active against this resource.";
- }
- }
- description
- "Represents the possible values of alarm states. An alarm is a
- persistent indication of an error or warning condition.
- When no bits of this attribute are set, then no active alarms
- are known against this component and it is not under repair.";
- reference
- "RFC 4268: Entity State MIB - EntityAlarmStatus";
-}
-
-typedef standby-state {
- type enumeration {
- enum unknown {
- value 1;
- description
- "The resource is unable to report standby state.";
- }
- enum hot-standby {
- value 2;
- description
- "The resource is not providing service, but it will be
- immediately able to take over the role of the resource to
- be backed up, without the need for initialization
- activity, and will contain the same information as the
- resource to be backed up.";
- }
- enum cold-standby {
- value 3;
- description
- "The resource is to back up another resource, but it will
- not be immediately able to take over the role of a
- resource to be backed up and will require some
- initialization activity.";
- }
- enum providing-service {
- value 4;
- description
- "The resource is providing service.";
- }
- }
- description
- "Represents the possible values of standby states.";
- reference
- "RFC 4268: Entity State MIB - EntityStandbyStatus";
-}
-
-typedef sensor-value-type {
- type enumeration {
- enum other {
- value 1;
- description
- "A measure other than those listed below.";
- }
- enum unknown {
- value 2;
- description
- "An unknown measurement or arbitrary, relative numbers";
- }
- enum volts-AC {
- value 3;
- description
- "A measure of electric potential (alternating current).";
- }
- enum volts-DC {
- value 4;
- description
- "A measure of electric potential (direct current).";
- }
- enum amperes {
- value 5;
- description
- "A measure of electric current.";
- }
- enum watts {
- value 6;
- description
- "A measure of power.";
- }
- enum hertz {
- value 7;
- description
- "A measure of frequency.";
- }
- enum celsius {
- value 8;
- description
- "A measure of temperature.";
- }
- enum percent-RH {
- value 9;
- description
- "A measure of percent relative humidity.";
- }
- enum rpm {
- value 10;
- description
- "A measure of shaft revolutions per minute.";
- }
- enum cmm {
- value 11;
- description
- "A measure of cubic meters per minute (airflow).";
- }
- enum truth-value {
- value 12;
- description
- "Value is one of 1 (true) or 2 (false)";
- }
- }
- description
- "A node using this data type represents the sensor measurement
- data type associated with a physical sensor value. The actual
- data units are determined by examining a node of this type
- together with the associated sensor-value-scale node.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-scale and type sensor-value-precision.
- These three types are used to identify the semantics of a node
- of type sensor-value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorDataType";
-}
-
-typedef sensor-value-scale {
- type enumeration {
- enum yocto {
- value 1;
- description
- "Data scaling factor of 10^-24.";
- }
- enum zepto {
- value 2;
- description
- "Data scaling factor of 10^-21.";
- }
- enum atto {
- value 3;
- description
- "Data scaling factor of 10^-18.";
- }
- enum femto {
- value 4;
- description
- "Data scaling factor of 10^-15.";
- }
- enum pico {
- value 5;
- description
- "Data scaling factor of 10^-12.";
- }
- enum nano {
- value 6;
- description
- "Data scaling factor of 10^-9.";
- }
- enum micro {
- value 7;
- description
- "Data scaling factor of 10^-6.";
- }
- enum milli {
- value 8;
- description
- "Data scaling factor of 10^-3.";
- }
- enum units {
- value 9;
- description
- "Data scaling factor of 10^0.";
- }
- enum kilo {
- value 10;
- description
- "Data scaling factor of 10^3.";
- }
- enum mega {
- value 11;
- description
- "Data scaling factor of 10^6.";
- }
- enum giga {
- value 12;
- description
- "Data scaling factor of 10^9.";
- }
- enum tera {
- value 13;
- description
- "Data scaling factor of 10^12.";
- }
- enum peta {
- value 14;
- description
- "Data scaling factor of 10^15.";
- }
- enum exa {
- value 15;
- description
- "Data scaling factor of 10^18.";
- }
- enum zetta {
- value 16;
- description
- "Data scaling factor of 10^21.";
- }
- enum yotta {
- value 17;
- description
- "Data scaling factor of 10^24.";
- }
- }
- description
- "A node using this data type represents a data scaling factor,
- represented with an International System of Units (SI) prefix.
- The actual data units are determined by examining a node of
- this type together with the associated sensor-value-type.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type and type sensor-value-precision.
- Together, associated nodes of these three types are used to
- identify the semantics of a node of type sensor-value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorDataScale";
-}
-
-typedef sensor-value-precision {
- type int8 {
- range "-8 .. 9";
- }
- description
- "A node using this data type represents a sensor value
- precision range.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type and type sensor-value-scale. Together,
- associated nodes of these three types are used to identify the
- semantics of a node of type sensor-value.
- If a node of this type contains a value in the range 1 to 9,
- it represents the number of decimal places in the fractional
- part of an associated sensor-value fixed-point number.
- If a node of this type contains a value in the range -8 to -1,
- it represents the number of accurate digits in the associated
- sensor-value fixed-point number.
- The value zero indicates the associated sensor-value node is
- not a fixed-point number.
- Server implementers must choose a value for the associated
- sensor-value-precision node so that the precision and accuracy
- of the associated sensor-value node is correctly indicated.
- For example, a component representing a temperature sensor
- that can measure 0 to 100 degrees C in 0.1 degree
- increments, +/- 0.05 degrees, would have a
- sensor-value-precision value of '1', a sensor-value-scale
- value of 'units', and a sensor-value ranging from '0' to
- '1000'. The sensor-value would be interpreted as
- 'degrees C * 10'.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorPrecision";
-}
-
-typedef sensor-value {
- type int32 {
- range "-1000000000 .. 1000000000";
- }
- description
- "A node using this data type represents a sensor value.
- A node of this type SHOULD be defined together with nodes of
- type sensor-value-type, type sensor-value-scale, and
- type sensor-value-precision. Together, associated nodes of
- those three types are used to identify the semantics of a node
- of this data type.
- The semantics of a node using this data type are determined by
- the value of the associated sensor-value-type node.
- If the associated sensor-value-type node is equal to 'voltsAC',
- 'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',
- then a node of this type MUST contain a fixed-point number
- ranging from -999,999,999 to +999,999,999. The value
- -1000000000 indicates an underflow error. The value
- +1000000000 indicates an overflow error. The
- sensor-value-precision indicates how many fractional digits
- are represented in the associated sensor-value node.
- If the associated sensor-value-type node is equal to
- 'percentRH', then a node of this type MUST contain a number
- ranging from 0 to 100.
- If the associated sensor-value-type node is equal to 'rpm',
- then a node of this type MUST contain a number ranging from
- -999,999,999 to +999,999,999.
- If the associated sensor-value-type node is equal to
- 'truth-value', then a node of this type MUST contain either the
- value 1 (true) or the value 2 (false).
- If the associated sensor-value-type node is equal to 'other' or
- 'unknown', then a node of this type MUST contain a number
- ranging from -1000000000 to 1000000000.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorValue";
-}
-
-typedef sensor-status {
- type enumeration {
- enum ok {
- value 1;
- description
- "Indicates that the server can obtain the sensor value.";
- }
- enum unavailable {
- value 2;
- description
- "Indicates that the server presently cannot obtain the
- sensor value.";
- }
- enum nonoperational {
- value 3;
- description
- "Indicates that the server believes the sensor is broken.
- The sensor could have a hard failure (disconnected wire)
- or a soft failure such as out-of-range, jittery, or wildly
- fluctuating readings.";
- }
- }
- description
- "A node using this data type represents the operational status
- of a physical sensor.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- EntitySensorStatus";
-}
-
-/*
- * Data nodes
- */
-
-container hardware {
- description
- "Data nodes representing components.
- If the server supports configuration of hardware components,
- then this data model is instantiated in the configuration
- datastores supported by the server. The leaf-list 'datastore'
- for the module 'ietf-hardware' in the YANG library provides
- this information.";
-
- leaf last-change {
- type yang:date-and-time;
- config false;
- description
- "The time the '/hardware/component' list changed in the
- operational state.";
- }
-
- list component {
- key name;
- description
- "List of components.
- When the server detects a new hardware component, it
- initializes a list entry in the operational state.
- If the server does not support configuration of hardware
- components, list entries in the operational state are
- initialized with values for all nodes as detected by the
- implementation.
- Otherwise, this procedure is followed:
- 1. If there is an entry in the '/hardware/component' list
- in the intended configuration with values for the nodes
- 'class', 'parent', and 'parent-rel-pos' that are equal
- to the detected values, then the list entry in the
- operational state is initialized with the configured
- values, including the 'name'.
- 2. Otherwise (i.e., there is no matching configuration
- entry), the list entry in the operational state is
- initialized with values for all nodes as detected by
- the implementation.
- If the '/hardware/component' list in the intended
- configuration is modified, then the system MUST behave as if
- it re-initializes itself and follow the procedure in (1).";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";
-
- leaf name {
- type string;
- description
- "The name assigned to this component.
- This name is not required to be the same as
- entPhysicalName.";
- }
-
- leaf class {
- type identityref {
- base ianahw:hardware-class;
- }
- mandatory true;
- description
- "An indication of the general hardware type of the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";
- }
-
- leaf physical-index {
- if-feature entity-mib;
- type int32 {
- range "1..2147483647";
- }
- config false;
- description
- "The entPhysicalIndex for the entPhysicalEntry represented
- by this list entry.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";
- }
-
- leaf description {
- type string;
- config false;
- description
- "A textual description of the component. This node should
- contain a string that identifies the manufacturer's name
- for the component and should be set to a distinct value
- for each version or model of the component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";
- }
-
- leaf parent {
- type leafref {
- path "../../component/name";
- require-instance false;
- }
- description
- "The name of the component that physically contains this
- component.
- If this leaf is not instantiated, it indicates that this
- component is not contained in any other component.
- In the event that a physical component is contained by
- more than one physical component (e.g., double-wide
- modules), this node contains the name of one of these
- components. An implementation MUST use the same name
- every time this node is instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";
- }
-
- leaf parent-rel-pos {
- type int32 {
- range "0 .. 2147483647";
- }
- description
- "An indication of the relative position of this child
- component among all its sibling components. Sibling
- components are defined as components that:
- o share the same value of the 'parent' node and
- o share a common base identity for the 'class' node.
- Note that the last rule gives implementations flexibility
- in how components are numbered. For example, some
- implementations might have a single number series for all
- components derived from 'ianahw:port', while some others
- might have different number series for different
- components with identities derived from 'ianahw:port' (for
- example, one for registered jack 45 (RJ45) and one for
- small form-factor pluggable (SFP)).";
-
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalParentRelPos";
- }
-
- leaf-list contains-child {
- type leafref {
- path "../../component/name";
- }
- config false;
- description
- "The name of the contained component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";
- }
-
- leaf hardware-rev {
- type string;
- config false;
- description
- "The vendor-specific hardware revision string for the
- component. The preferred value is the hardware revision
- identifier actually printed on the component itself (if
- present).";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalHardwareRev";
- }
-
- leaf firmware-rev {
- type string;
- config false;
- description
- "The vendor-specific firmware revision string for the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalFirmwareRev";
- }
-
- leaf software-rev {
- type string;
- config false;
-
- description
- "The vendor-specific software revision string for the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) -
- entPhysicalSoftwareRev";
- }
-
- leaf serial-num {
- type string;
- config false;
- description
- "The vendor-specific serial number string for the
- component. The preferred value is the serial number
- string actually printed on the component itself (if
- present).";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";
- }
-
- leaf mfg-name {
- type string;
- config false;
- description
- "The name of the manufacturer of this physical component.
- The preferred value is the manufacturer name string
- actually printed on the component itself (if present).
- Note that comparisons between instances of the
- 'model-name', 'firmware-rev', 'software-rev', and
- 'serial-num' nodes are only meaningful amongst components
- with the same value of 'mfg-name'.
- If the manufacturer name string associated with the
- physical component is unknown to the server, then this
- node is not instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";
- }
-
- leaf model-name {
- type string;
- config false;
- description
- "The vendor-specific model name identifier string
- associated with this physical component. The preferred
- value is the customer-visible part number, which may be
- printed on the component itself.
- If the model name string associated with the physical
- component is unknown to the server, then this node is not
- instantiated.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";
- }
-
- leaf alias {
- type string;
- description
- "An 'alias' name for the component, as specified by a
- network manager, that provides a non-volatile 'handle' for
- the component.
- If no configured value exists, the server MAY set the
- value of this node to a locally unique value in the
- operational state.
- A server implementation MAY map this leaf to the
- entPhysicalAlias MIB object. Such an implementation needs
- to use some mechanism to handle the differences in size
- and characters allowed between this leaf and
- entPhysicalAlias. The definition of such a mechanism is
- outside the scope of this document.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";
- }
-
- leaf asset-id {
- type string;
- description
- "This node is a user-assigned asset tracking identifier for
- the component.
- A server implementation MAY map this leaf to the
- entPhysicalAssetID MIB object. Such an implementation
- needs to use some mechanism to handle the differences in
- size and characters allowed between this leaf and
- entPhysicalAssetID. The definition of such a mechanism is
- outside the scope of this document.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";
- }
-
- leaf is-fru {
- type boolean;
- config false;
-
- description
- "This node indicates whether or not this component is
- considered a 'field-replaceable unit' by the vendor. If
- this node contains the value 'true', then this component
- identifies a field-replaceable unit. For all components
- that are permanently contained within a field-replaceable
- unit, the value 'false' should be returned for this
- node.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";
- }
-
- leaf mfg-date {
- type yang:date-and-time;
- config false;
- description
- "The date of manufacturing of the managed component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";
- }
-
- leaf-list uri {
- type inet:uri;
- description
- "This node contains identification information about the
- component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";
- }
-
- leaf uuid {
- type yang:uuid;
- config false;
- description
- "A Universally Unique Identifier of the component.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";
- }
-
- container state {
- if-feature hardware-state;
- description
- "State-related nodes";
- reference
- "RFC 4268: Entity State MIB";
-
- leaf state-last-changed {
- type yang:date-and-time;
- config false;
- description
- "The date and time when the value of any of the
- admin-state, oper-state, usage-state, alarm-state, or
- standby-state changed for this component.
- If there has been no change since the last
- re-initialization of the local system, this node
- contains the date and time of local system
- initialization. If there has been no change since the
- component was added to the local system, this node
- contains the date and time of the insertion.";
- reference
- "RFC 4268: Entity State MIB - entStateLastChanged";
- }
-
- leaf admin-state {
- type admin-state;
- description
- "The administrative state for this component.
- This node refers to a component's administrative
- permission to service both other components within its
- containment hierarchy as well other users of its
- services defined by means outside the scope of this
- module.
- Some components exhibit only a subset of the remaining
- administrative state values. Some components cannot be
- locked; hence, this node exhibits only the 'unlocked'
- state. Other components cannot be shut down gracefully;
- hence, this node does not exhibit the 'shutting-down'
- state.";
- reference
- "RFC 4268: Entity State MIB - entStateAdmin";
- }
-
- leaf oper-state {
- type oper-state;
- config false;
- description
- "The operational state for this component.
- Note that this node does not follow the administrative
- state. An administrative state of 'down' does not
- predict an operational state of 'disabled'.
- Note that some implementations may not be able to
- accurately report oper-state while the admin-state node
- has a value other than 'unlocked'. In these cases, this
- node MUST have a value of 'unknown'.";
- reference
- "RFC 4268: Entity State MIB - entStateOper";
- }
-
- leaf usage-state {
- type usage-state;
- config false;
- description
- "The usage state for this component.
- This node refers to a component's ability to service
- more components in a containment hierarchy.
- Some components will exhibit only a subset of the usage
- state values. Components that are unable to ever
- service any components within a containment hierarchy
- will always have a usage state of 'busy'. In some
- cases, a component will be able to support only one
- other component within its containment hierarchy and
- will therefore only exhibit values of 'idle' and
- 'busy'.";
- reference
- "RFC 4268: Entity State MIB - entStateUsage";
- }
-
- leaf alarm-state {
- type alarm-state;
- config false;
- description
- "The alarm state for this component. It does not
- include the alarms raised on child components within its
- containment hierarchy.";
- reference
- "RFC 4268: Entity State MIB - entStateAlarm";
- }
-
- leaf standby-state {
- type standby-state;
- config false;
- description
- "The standby state for this component.
- Some components will exhibit only a subset of the
- remaining standby state values. If this component
- cannot operate in a standby role, the value of this node
- will always be 'providing-service'.";
- reference
- "RFC 4268: Entity State MIB - entStateStandby";
- }
- }
-
- container sensor-data {
- when 'derived-from-or-self(../class,
- "ianahw:sensor")' {
- description
- "Sensor data nodes present for any component of type
- 'sensor'";
- }
- if-feature hardware-sensor;
- config false;
-
- description
- "Sensor-related nodes.";
- reference
- "RFC 3433: Entity Sensor Management Information Base";
-
- leaf value {
- type sensor-value;
- description
- "The most recent measurement obtained by the server
- for this sensor.
- A client that periodically fetches this node should also
- fetch the nodes 'value-type', 'value-scale', and
- 'value-precision', since they may change when the value
- is changed.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValue";
- }
-
- leaf value-type {
- type sensor-value-type;
- description
- "The type of data units associated with the
- sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorType";
- }
- leaf value-scale {
- type sensor-value-scale;
- description
- "The (power of 10) scaling factor associated
- with the sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorScale";
- }
-
- leaf value-precision {
- type sensor-value-precision;
- description
- "The number of decimal places of precision
- associated with the sensor value";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorPrecision";
- }
-
- leaf oper-status {
- type sensor-status;
- description
- "The operational status of the sensor.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorOperStatus";
- }
-
- leaf units-display {
- type string;
- description
- "A textual description of the data units that should be
- used in the display of the sensor value.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorUnitsDisplay";
- }
-
- leaf value-timestamp {
- type yang:date-and-time;
- description
- "The time the status and/or value of this sensor was last
- obtained by the server.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValueTimeStamp";
- }
- leaf value-update-rate {
- type uint32;
- units "milliseconds";
- description
- "An indication of the frequency that the server updates
- the associated 'value' node, represented in
- milliseconds. The value zero indicates:
- - the sensor value is updated on demand (e.g.,
- when polled by the server for a get-request),
- - the sensor value is updated when the sensor
- value changes (event-driven), or
- - the server does not know the update rate.";
- reference
- "RFC 3433: Entity Sensor Management Information Base -
- entPhySensorValueUpdateRate";
- }
- }
- }
-}
-
-/*
- * Notifications
- */
-
-notification hardware-state-change {
- description
- "A hardware-state-change notification is generated when the
- value of /hardware/last-change changes in the operational
- state.";
- reference
- "RFC 6933: Entity MIB (Version 4) - entConfigChange";
-}
-
-notification hardware-state-oper-enabled {
- if-feature hardware-state;
- description
- "A hardware-state-oper-enabled notification signifies that a
- component has transitioned into the 'enabled' state.";
-
- leaf name {
- type leafref {
- path "/hardware/component/name";
- }
-
- description
- "The name of the component that has transitioned into the
- 'enabled' state.";
- }
- leaf admin-state {
- type leafref {
- path "/hardware/component/state/admin-state";
- }
- description
- "The administrative state for the component.";
- }
- leaf alarm-state {
- type leafref {
- path "/hardware/component/state/alarm-state";
- }
- description
- "The alarm state for the component.";
- }
- reference
- "RFC 4268: Entity State MIB - entStateOperEnabled";
-}
-
-notification hardware-state-oper-disabled {
- if-feature hardware-state;
- description
- "A hardware-state-oper-disabled notification signifies that a
- component has transitioned into the 'disabled' state.";
-
- leaf name {
- type leafref {
- path "/hardware/component/name";
- }
- description
- "The name of the component that has transitioned into the
- 'disabled' state.";
- }
- leaf admin-state {
- type leafref {
- path "/hardware/component/state/admin-state";
- }
- description
- "The administrative state for the component.";
- }
- leaf alarm-state {
- type leafref {
- path "/hardware/component/state/alarm-state";
- }
-
- description
- "The alarm state for the component.";
- }
- reference
- "RFC 4268: Entity State MIB - entStateOperDisabled";
-}
-
-}
+++ /dev/null
-module ietf-interfaces {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-interfaces";
- prefix if;
-
- import ietf-yang-types {
- prefix yang;
- }
-
- organization
- "IETF NETMOD (Network Modeling) Working Group";
-
- contact
- "WG Web: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
-
- description
- "This module contains a collection of YANG definitions for
- managing network interfaces.
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- This version of this YANG module is part of RFC 8343; see
- the RFC itself for full legal notices.";
-
- revision 2018-02-20 {
- description
- "Updated to support NMDA.";
- reference
- "RFC 8343: A YANG Data Model for Interface Management";
- }
-
- revision 2014-05-08 {
- description
- "Initial revision.";
- reference
- "RFC 7223: A YANG Data Model for Interface Management";
- }
-
- /*
- * Typedefs
- */
-
- typedef interface-ref {
- type leafref {
- path "/if:interfaces/if:interface/if:name";
- }
- description
- "This type is used by data models that need to reference
- interfaces.";
- }
-
- /*
- * Identities
- */
-
- identity interface-type {
- description
- "Base identity from which specific interface types are
- derived.";
- }
-
- /*
- * Features
- */
-
- feature arbitrary-names {
- description
- "This feature indicates that the device allows user-controlled
- interfaces to be named arbitrarily.";
- }
- feature pre-provisioning {
- description
- "This feature indicates that the device supports
- pre-provisioning of interface configuration, i.e., it is
- possible to configure an interface whose physical interface
- hardware is not present on the device.";
- }
- feature if-mib {
- description
- "This feature indicates that the device implements
- the IF-MIB.";
- reference
- "RFC 2863: The Interfaces Group MIB";
- }
-
- /*
- * Data nodes
- */
-
- container interfaces {
- description
- "Interface parameters.";
-
- list interface {
- key "name";
-
- description
- "The list of interfaces on the device.
- The status of an interface is available in this list in the
- operational state. If the configuration of a
- system-controlled interface cannot be used by the system
- (e.g., the interface hardware present does not match the
- interface type), then the configuration is not applied to
- the system-controlled interface shown in the operational
- state. If the configuration of a user-controlled interface
- cannot be used by the system, the configured interface is
- not instantiated in the operational state.
- System-controlled interfaces created by the system are
- always present in this list in the operational state,
- whether or not they are configured.";
-
- leaf name {
- type string;
- description
- "The name of the interface.
- A device MAY restrict the allowed values for this leaf,
- possibly depending on the type of the interface.
- For system-controlled interfaces, this leaf is the
- device-specific name of the interface.
- If a client tries to create configuration for a
- system-controlled interface that is not present in the
- operational state, the server MAY reject the request if
- the implementation does not support pre-provisioning of
- interfaces or if the name refers to an interface that can
- never exist in the system. A Network Configuration
- Protocol (NETCONF) server MUST reply with an rpc-error
- with the error-tag 'invalid-value' in this case.
- If the device supports pre-provisioning of interface
- configuration, the 'pre-provisioning' feature is
- advertised.
- If the device allows arbitrarily named user-controlled
- interfaces, the 'arbitrary-names' feature is advertised.
- When a configured user-controlled interface is created by
- the system, it is instantiated with the same name in the
- operational state.
- A server implementation MAY map this leaf to the ifName
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifName. The definition of
- such a mechanism is outside the scope of this document.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifName";
- }
-
- leaf description {
- type string;
- description
- "A textual description of the interface.
- A server implementation MAY map this leaf to the ifAlias
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifAlias. The definition of
- such a mechanism is outside the scope of this document.
- Since ifAlias is defined to be stored in non-volatile
- storage, the MIB implementation MUST map ifAlias to the
- value of 'description' in the persistently stored
- configuration.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAlias";
- }
-
- leaf type {
- type identityref {
- base interface-type;
- }
- mandatory true;
- description
- "The type of the interface.
- When an interface entry is created, a server MAY
- initialize the type leaf with a valid value, e.g., if it
- is possible to derive the type from the name of the
- interface.
- If a client tries to set the type of an interface to a
- value that can never be used by the system, e.g., if the
- type is not supported or if the type does not match the
- name of the interface, the server MUST reject the request.
- A NETCONF server MUST reply with an rpc-error with the
- error-tag 'invalid-value' in this case.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifType";
- }
-
- leaf enabled {
- type boolean;
- default "true";
- description
- "This leaf contains the configured, desired state of the
- interface.
- Systems that implement the IF-MIB use the value of this
- leaf in the intended configuration to set
- IF-MIB.ifAdminStatus to 'up' or 'down' after an ifEntry
- has been initialized, as described in RFC 2863.
- Changes in this leaf in the intended configuration are
- reflected in ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf link-up-down-trap-enable {
- if-feature if-mib;
- type enumeration {
- enum enabled {
- value 1;
- description
- "The device will generate linkUp/linkDown SNMP
- notifications for this interface.";
- }
- enum disabled {
- value 2;
- description
- "The device will not generate linkUp/linkDown SNMP
- notifications for this interface.";
- }
- }
- description
- "Controls whether linkUp/linkDown SNMP notifications
- should be generated for this interface.
- If this node is not configured, the value 'enabled' is
- operationally used by the server for interfaces that do
- not operate on top of any other interface (i.e., there are
- no 'lower-layer-if' entries), and 'disabled' otherwise.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifLinkUpDownTrapEnable";
- }
-
- leaf admin-status {
- if-feature if-mib;
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "Not ready to pass packets and not in some test mode.";
- }
- enum testing {
- value 3;
- description
- "In some test mode.";
- }
- }
- config false;
- mandatory true;
- description
- "The desired state of the interface.
- This leaf has the same read semantics as ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf oper-status {
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
-
- description
- "The interface does not pass any packets.";
- }
- enum testing {
- value 3;
- description
- "In some test mode. No operational packets can
- be passed.";
- }
- enum unknown {
- value 4;
- description
- "Status cannot be determined for some reason.";
- }
- enum dormant {
- value 5;
- description
- "Waiting for some external event.";
- }
- enum not-present {
- value 6;
- description
- "Some component (typically hardware) is missing.";
- }
- enum lower-layer-down {
- value 7;
- description
- "Down due to state of lower-layer interface(s).";
- }
- }
- config false;
- mandatory true;
- description
- "The current operational state of the interface.
- This leaf has the same semantics as ifOperStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOperStatus";
- }
-
- leaf last-change {
- type yang:date-and-time;
- config false;
- description
- "The time the interface entered its current operational
- state. If the current state was entered prior to the
- last re-initialization of the local network management
- subsystem, then this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifLastChange";
- }
-
- leaf if-index {
- if-feature if-mib;
- type int32 {
- range "1..2147483647";
- }
- config false;
- mandatory true;
- description
- "The ifIndex value for the ifEntry represented by this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifIndex";
- }
-
- leaf phys-address {
- type yang:phys-address;
- config false;
- description
- "The interface's address at its protocol sub-layer. For
- example, for an 802.x interface, this object normally
- contains a Media Access Control (MAC) address. The
- interface's media-specific modules must define the bit
- and byte ordering and the format of the value of this
- object. For interfaces that do not have such an address
- (e.g., a serial line), this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
- }
-
- leaf-list higher-layer-if {
- type interface-ref;
- config false;
- description
- "A list of references to interfaces layered on top of this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf-list lower-layer-if {
- type interface-ref;
- config false;
-
- description
- "A list of references to interfaces layered underneath this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf speed {
- type yang:gauge64;
- units "bits/second";
- config false;
- description
- "An estimate of the interface's current bandwidth in bits
- per second. For interfaces that do not vary in
- bandwidth or for those where no accurate estimation can
- be made, this node should contain the nominal bandwidth.
- For interfaces that have no concept of bandwidth, this
- node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifSpeed, ifHighSpeed";
- }
-
- container statistics {
- config false;
- description
- "A collection of interface-related statistics objects.";
-
- leaf discontinuity-time {
- type yang:date-and-time;
- mandatory true;
- description
- "The time on the most recent occasion at which any one or
- more of this interface's counters suffered a
- discontinuity. If no such discontinuities have occurred
- since the last re-initialization of the local management
- subsystem, then this node contains the time the local
- management subsystem re-initialized itself.";
- }
-
- leaf in-octets {
- type yang:counter64;
- description
- "The total number of octets received on the interface,
- including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
- }
-
- leaf in-unicast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were not addressed to a
- multicast or broadcast address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
- }
-
- leaf in-broadcast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a broadcast
- address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInBroadcastPkts";
- }
-
- leaf in-multicast-pkts {
- type yang:counter64;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a multicast
- address at this sub-layer. For a MAC-layer protocol,
- this includes both Group and Functional addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInMulticastPkts";
- }
-
- leaf in-discards {
- type yang:counter32;
- description
- "The number of inbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being deliverable to a higher-layer
- protocol. One possible reason for discarding such a
- packet could be to free up buffer space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInDiscards";
- }
-
- leaf in-errors {
- type yang:counter32;
- description
- "For packet-oriented interfaces, the number of inbound
- packets that contained errors preventing them from being
- deliverable to a higher-layer protocol. For character-
- oriented or fixed-length interfaces, the number of
- inbound transmission units that contained errors
- preventing them from being deliverable to a higher-layer
- protocol.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInErrors";
- }
-
- leaf in-unknown-protos {
- type yang:counter32;
-
- description
- "For packet-oriented interfaces, the number of packets
- received via the interface that were discarded because
- of an unknown or unsupported protocol. For
- character-oriented or fixed-length interfaces that
- support protocol multiplexing, the number of
- transmission units received via the interface that were
- discarded because of an unknown or unsupported protocol.
- For any interface that does not support protocol
- multiplexing, this counter is not present.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
- }
-
- leaf out-octets {
- type yang:counter64;
- description
- "The total number of octets transmitted out of the
- interface, including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
- }
-
- leaf out-unicast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were not addressed
- to a multicast or broadcast address at this sub-layer,
- including those that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
- }
-
- leaf out-broadcast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- broadcast address at this sub-layer, including those
- that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutBroadcastPkts";
- }
-
- leaf out-multicast-pkts {
- type yang:counter64;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- multicast address at this sub-layer, including those
- that were discarded or not sent. For a MAC-layer
- protocol, this includes both Group and Functional
- addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutMulticastPkts";
- }
-
- leaf out-discards {
- type yang:counter32;
- description
- "The number of outbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being transmitted. One possible reason
- for discarding such a packet could be to free up buffer
- space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
- }
-
- leaf out-errors {
- type yang:counter32;
- description
- "For packet-oriented interfaces, the number of outbound
- packets that could not be transmitted because of errors.
- For character-oriented or fixed-length interfaces, the
- number of outbound transmission units that could not be
- transmitted because of errors.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutErrors";
- }
- }
-
- }
- }
-
- /*
- * Legacy typedefs
- */
-
- typedef interface-state-ref {
- type leafref {
- path "/if:interfaces-state/if:interface/if:name";
- }
- status deprecated;
- description
- "This type is used by data models that need to reference
- the operationally present interfaces.";
- }
-
- /*
- * Legacy operational state data nodes
- */
-
- container interfaces-state {
- config false;
- status deprecated;
- description
- "Data nodes for the operational state of interfaces.";
-
- list interface {
- key "name";
- status deprecated;
-
- description
- "The list of interfaces on the device.
- System-controlled interfaces created by the system are
- always present in this list, whether or not they are
- configured.";
-
- leaf name {
- type string;
- status deprecated;
- description
- "The name of the interface.
- A server implementation MAY map this leaf to the ifName
- MIB object. Such an implementation needs to use some
- mechanism to handle the differences in size and characters
- allowed between this leaf and ifName. The definition of
- such a mechanism is outside the scope of this document.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifName";
- }
-
- leaf type {
- type identityref {
- base interface-type;
- }
- mandatory true;
- status deprecated;
- description
- "The type of the interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifType";
- }
-
- leaf admin-status {
- if-feature if-mib;
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "Not ready to pass packets and not in some test mode.";
- }
- enum testing {
- value 3;
- description
- "In some test mode.";
- }
- }
- mandatory true;
- status deprecated;
- description
- "The desired state of the interface.
- This leaf has the same read semantics as ifAdminStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifAdminStatus";
- }
-
- leaf oper-status {
- type enumeration {
- enum up {
- value 1;
- description
- "Ready to pass packets.";
- }
- enum down {
- value 2;
- description
- "The interface does not pass any packets.";
- }
- enum testing {
- value 3;
- description
- "In some test mode. No operational packets can
- be passed.";
- }
- enum unknown {
- value 4;
- description
- "Status cannot be determined for some reason.";
- }
- enum dormant {
- value 5;
- description
- "Waiting for some external event.";
- }
- enum not-present {
- value 6;
- description
- "Some component (typically hardware) is missing.";
- }
- enum lower-layer-down {
- value 7;
- description
- "Down due to state of lower-layer interface(s).";
- }
- }
- mandatory true;
- status deprecated;
- description
- "The current operational state of the interface.
- This leaf has the same semantics as ifOperStatus.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOperStatus";
- }
-
- leaf last-change {
- type yang:date-and-time;
- status deprecated;
- description
- "The time the interface entered its current operational
- state. If the current state was entered prior to the
- last re-initialization of the local network management
- subsystem, then this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifLastChange";
- }
-
- leaf if-index {
- if-feature if-mib;
- type int32 {
- range "1..2147483647";
- }
- mandatory true;
- status deprecated;
- description
- "The ifIndex value for the ifEntry represented by this
- interface.";
-
- reference
- "RFC 2863: The Interfaces Group MIB - ifIndex";
- }
-
- leaf phys-address {
- type yang:phys-address;
- status deprecated;
- description
- "The interface's address at its protocol sub-layer. For
- example, for an 802.x interface, this object normally
- contains a Media Access Control (MAC) address. The
- interface's media-specific modules must define the bit
- and byte ordering and the format of the value of this
- object. For interfaces that do not have such an address
- (e.g., a serial line), this node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifPhysAddress";
- }
-
- leaf-list higher-layer-if {
- type interface-state-ref;
- status deprecated;
- description
- "A list of references to interfaces layered on top of this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf-list lower-layer-if {
- type interface-state-ref;
- status deprecated;
- description
- "A list of references to interfaces layered underneath this
- interface.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifStackTable";
- }
-
- leaf speed {
- type yang:gauge64;
- units "bits/second";
- status deprecated;
- description
- "An estimate of the interface's current bandwidth in bits
- per second. For interfaces that do not vary in
- bandwidth or for those where no accurate estimation can
- be made, this node should contain the nominal bandwidth.
- For interfaces that have no concept of bandwidth, this
- node is not present.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifSpeed, ifHighSpeed";
- }
-
- container statistics {
- status deprecated;
- description
- "A collection of interface-related statistics objects.";
-
- leaf discontinuity-time {
- type yang:date-and-time;
- mandatory true;
- status deprecated;
- description
- "The time on the most recent occasion at which any one or
- more of this interface's counters suffered a
- discontinuity. If no such discontinuities have occurred
- since the last re-initialization of the local management
- subsystem, then this node contains the time the local
- management subsystem re-initialized itself.";
- }
-
- leaf in-octets {
- type yang:counter64;
- status deprecated;
- description
- "The total number of octets received on the interface,
- including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInOctets";
- }
-
- leaf in-unicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were not addressed to a
- multicast or broadcast address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCInUcastPkts";
- }
-
- leaf in-broadcast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a broadcast
- address at this sub-layer.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInBroadcastPkts";
- }
-
- leaf in-multicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The number of packets, delivered by this sub-layer to a
- higher (sub-)layer, that were addressed to a multicast
- address at this sub-layer. For a MAC-layer protocol,
- this includes both Group and Functional addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCInMulticastPkts";
- }
-
- leaf in-discards {
- type yang:counter32;
- status deprecated;
-
- description
- "The number of inbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being deliverable to a higher-layer
- protocol. One possible reason for discarding such a
- packet could be to free up buffer space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInDiscards";
- }
-
- leaf in-errors {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of inbound
- packets that contained errors preventing them from being
- deliverable to a higher-layer protocol. For character-
- oriented or fixed-length interfaces, the number of
- inbound transmission units that contained errors
- preventing them from being deliverable to a higher-layer
- protocol.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInErrors";
- }
-
- leaf in-unknown-protos {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of packets
- received via the interface that were discarded because
- of an unknown or unsupported protocol. For
- character-oriented or fixed-length interfaces that
- support protocol multiplexing, the number of
- transmission units received via the interface that were
- discarded because of an unknown or unsupported protocol.
- For any interface that does not support protocol
- multiplexing, this counter is not present.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifInUnknownProtos";
- }
-
- leaf out-octets {
- type yang:counter64;
- status deprecated;
- description
- "The total number of octets transmitted out of the
- interface, including framing characters.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutOctets";
- }
-
- leaf out-unicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were not addressed
- to a multicast or broadcast address at this sub-layer,
- including those that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifHCOutUcastPkts";
- }
-
- leaf out-broadcast-pkts {
- type yang:counter64;
- status deprecated;
-
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- broadcast address at this sub-layer, including those
- that were discarded or not sent.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutBroadcastPkts";
- }
-
- leaf out-multicast-pkts {
- type yang:counter64;
- status deprecated;
- description
- "The total number of packets that higher-level protocols
- requested be transmitted and that were addressed to a
- multicast address at this sub-layer, including those
- that were discarded or not sent. For a MAC-layer
- protocol, this includes both Group and Functional
- addresses.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB -
- ifHCOutMulticastPkts";
- }
-
- leaf out-discards {
- type yang:counter32;
- status deprecated;
- description
- "The number of outbound packets that were chosen to be
- discarded even though no errors had been detected to
- prevent their being transmitted. One possible reason
- for discarding such a packet could be to free up buffer
- space.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutDiscards";
- }
-
- leaf out-errors {
- type yang:counter32;
- status deprecated;
- description
- "For packet-oriented interfaces, the number of outbound
- packets that could not be transmitted because of errors.
- For character-oriented or fixed-length interfaces, the
- number of outbound transmission units that could not be
- transmitted because of errors.
- Discontinuities in the value of this counter can occur
- at re-initialization of the management system and at
- other times as indicated by the value of
- 'discontinuity-time'.";
- reference
- "RFC 2863: The Interfaces Group MIB - ifOutErrors";
- }
- }
- }
- }
-}
+++ /dev/null
-module iana-if-type {
- namespace "urn:ietf:params:xml:ns:yang:iana-if-type";
- prefix ianaift;
-
- import ietf-interfaces {
- prefix if;
- }
-
- organization "IANA";
- contact
- " Internet Assigned Numbers Authority
- Postal: ICANN
- 12025 Waterfront Drive, Suite 300
- Los Angeles, CA 90094-2536
- United States
- Tel: +1 310 301 5800
- <mailto:iana&iana.org>";
- description
- "This YANG module defines YANG identities for IANA-registered
- interface types.
- This YANG module is maintained by IANA and reflects the
- 'ifType definitions' registry.
- The latest revision of this YANG module can be obtained from
- the IANA web site.
- Requests for new values should be made to IANA via
- email (iana&iana.org).
- Copyright (c) 2014 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (http://trustee.ietf.org/license-info).
- The initial version of this YANG module is part of RFC 7224;
- see the RFC itself for full legal notices.";
- reference
- "IANA 'ifType definitions' registry.
- <http://www.iana.org/assignments/smi-numbers>";
-
- revision 2017-01-19 {
- description
- "Registered ifType 289.";
- }
-
- revision 2016-11-23 {
- description
- "Registered ifTypes 283-288.";
- }
-
- revision 2016-06-09 {
- description
- "Registered ifType 282.";
- }
- revision 2016-05-03 {
- description
- "Registered ifType 281.";
- }
- revision 2015-06-12 {
- description
- "Corrected formatting issue.";
- }
- revision 2014-09-24 {
- description
- "Registered ifType 280.";
- }
- revision 2014-09-19 {
- description
- "Registered ifType 279.";
- }
- revision 2014-07-03 {
- description
- "Registered ifTypes 277-278.";
- }
- revision 2014-05-19 {
- description
- "Updated the contact address.";
- }
- revision 2014-05-08 {
- description
- "Initial revision.";
- reference
- "RFC 7224: IANA Interface Type YANG Module";
- }
-
- identity iana-interface-type {
- base if:interface-type;
- description
- "This identity is used as a base for all interface types
- defined in the 'ifType definitions' registry.";
- }
-
- identity other {
- base iana-interface-type;
- }
- identity regular1822 {
- base iana-interface-type;
- }
- identity hdh1822 {
- base iana-interface-type;
- }
- identity ddnX25 {
- base iana-interface-type;
- }
- identity rfc877x25 {
- base iana-interface-type;
- reference
- "RFC 1382 - SNMP MIB Extension for the X.25 Packet Layer";
- }
- identity ethernetCsmacd {
- base iana-interface-type;
- description
- "For all Ethernet-like interfaces, regardless of speed,
- as per RFC 3635.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity iso88023Csmacd {
- base iana-interface-type;
- status deprecated;
- description
- "Deprecated via RFC 3635.
- Use ethernetCsmacd(6) instead.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity iso88024TokenBus {
- base iana-interface-type;
- }
- identity iso88025TokenRing {
- base iana-interface-type;
- }
- identity iso88026Man {
- base iana-interface-type;
- }
- identity starLan {
- base iana-interface-type;
- status deprecated;
- description
- "Deprecated via RFC 3635.
- Use ethernetCsmacd(6) instead.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity proteon10Mbit {
- base iana-interface-type;
- }
- identity proteon80Mbit {
- base iana-interface-type;
- }
- identity hyperchannel {
- base iana-interface-type;
- }
- identity fddi {
- base iana-interface-type;
- reference
- "RFC 1512 - FDDI Management Information Base";
- }
- identity lapb {
- base iana-interface-type;
- reference
- "RFC 1381 - SNMP MIB Extension for X.25 LAPB";
- }
- identity sdlc {
- base iana-interface-type;
- }
- identity ds1 {
- base iana-interface-type;
- description
- "DS1-MIB.";
- reference
- "RFC 4805 - Definitions of Managed Objects for the
- DS1, J1, E1, DS2, and E2 Interface Types";
- }
- identity e1 {
- base iana-interface-type;
- status obsolete;
- description
- "Obsolete; see DS1-MIB.";
- reference
- "RFC 4805 - Definitions of Managed Objects for the
- DS1, J1, E1, DS2, and E2 Interface Types";
- }
- identity basicISDN {
- base iana-interface-type;
- description
- "No longer used. See also RFC 2127.";
- }
- identity primaryISDN {
- base iana-interface-type;
- description
- "No longer used. See also RFC 2127.";
- }
- identity propPointToPointSerial {
- base iana-interface-type;
- description
- "Proprietary serial.";
- }
- identity ppp {
- base iana-interface-type;
- }
- identity softwareLoopback {
- base iana-interface-type;
- }
- identity eon {
- base iana-interface-type;
- description
- "CLNP over IP.";
- }
- identity ethernet3Mbit {
- base iana-interface-type;
- }
- identity nsip {
- base iana-interface-type;
- description
- "XNS over IP.";
- }
- identity slip {
- base iana-interface-type;
- description
- "Generic SLIP.";
- }
- identity ultra {
- base iana-interface-type;
- description
- "Ultra Technologies.";
- }
- identity ds3 {
- base iana-interface-type;
- description
- "DS3-MIB.";
- reference
- "RFC 3896 - Definitions of Managed Objects for the
- DS3/E3 Interface Type";
- }
- identity sip {
- base iana-interface-type;
- description
- "SMDS, coffee.";
- reference
- "RFC 1694 - Definitions of Managed Objects for SMDS
- Interfaces using SMIv2";
- }
- identity frameRelay {
- base iana-interface-type;
- description
- "DTE only.";
- reference
- "RFC 2115 - Management Information Base for Frame Relay
- DTEs Using SMIv2";
- }
- identity rs232 {
- base iana-interface-type;
- reference
- "RFC 1659 - Definitions of Managed Objects for RS-232-like
- Hardware Devices using SMIv2";
- }
- identity para {
- base iana-interface-type;
- description
- "Parallel-port.";
- reference
- "RFC 1660 - Definitions of Managed Objects for
- Parallel-printer-like Hardware Devices using
- SMIv2";
- }
- identity arcnet {
- base iana-interface-type;
- description
- "ARCnet.";
- }
- identity arcnetPlus {
- base iana-interface-type;
- description
- "ARCnet Plus.";
- }
- identity atm {
- base iana-interface-type;
- description
- "ATM cells.";
- }
- identity miox25 {
- base iana-interface-type;
- reference
- "RFC 1461 - SNMP MIB extension for Multiprotocol
- Interconnect over X.25";
- }
- identity sonet {
- base iana-interface-type;
- description
- "SONET or SDH.";
- }
- identity x25ple {
- base iana-interface-type;
- reference
- "RFC 2127 - ISDN Management Information Base using SMIv2";
- }
- identity iso88022llc {
- base iana-interface-type;
- }
- identity localTalk {
- base iana-interface-type;
- }
- identity smdsDxi {
- base iana-interface-type;
- }
- identity frameRelayService {
- base iana-interface-type;
- description
- "FRNETSERV-MIB.";
- reference
- "RFC 2954 - Definitions of Managed Objects for Frame
- Relay Service";
- }
- identity v35 {
- base iana-interface-type;
- }
- identity hssi {
- base iana-interface-type;
- }
- identity hippi {
- base iana-interface-type;
- }
- identity modem {
- base iana-interface-type;
- description
- "Generic modem.";
- }
- identity aal5 {
- base iana-interface-type;
- description
- "AAL5 over ATM.";
- }
- identity sonetPath {
- base iana-interface-type;
- }
- identity sonetVT {
- base iana-interface-type;
- }
- identity smdsIcip {
- base iana-interface-type;
- description
- "SMDS InterCarrier Interface.";
- }
- identity propVirtual {
- base iana-interface-type;
- description
- "Proprietary virtual/internal.";
- reference
- "RFC 2863 - The Interfaces Group MIB";
- }
- identity propMultiplexor {
- base iana-interface-type;
- description
- "Proprietary multiplexing.";
- reference
- "RFC 2863 - The Interfaces Group MIB";
- }
- identity ieee80212 {
- base iana-interface-type;
- description
- "100BaseVG.";
- }
- identity fibreChannel {
- base iana-interface-type;
- description
- "Fibre Channel.";
- }
- identity hippiInterface {
- base iana-interface-type;
- description
- "HIPPI interfaces.";
- }
- identity frameRelayInterconnect {
- base iana-interface-type;
- status obsolete;
- description
- "Obsolete; use either
- frameRelay(32) or frameRelayService(44).";
- }
- identity aflane8023 {
- base iana-interface-type;
- description
- "ATM Emulated LAN for 802.3.";
- }
- identity aflane8025 {
- base iana-interface-type;
- description
- "ATM Emulated LAN for 802.5.";
- }
- identity cctEmul {
- base iana-interface-type;
- description
- "ATM Emulated circuit.";
- }
- identity fastEther {
- base iana-interface-type;
- status deprecated;
- description
- "Obsoleted via RFC 3635.
- ethernetCsmacd(6) should be used instead.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity isdn {
- base iana-interface-type;
- description
- "ISDN and X.25.";
- reference
- "RFC 1356 - Multiprotocol Interconnect on X.25 and ISDN
- in the Packet Mode";
- }
- identity v11 {
- base iana-interface-type;
- description
- "CCITT V.11/X.21.";
- }
- identity v36 {
- base iana-interface-type;
- description
- "CCITT V.36.";
- }
- identity g703at64k {
- base iana-interface-type;
- description
- "CCITT G703 at 64Kbps.";
- }
- identity g703at2mb {
- base iana-interface-type;
- status obsolete;
- description
- "Obsolete; see DS1-MIB.";
- }
- identity qllc {
- base iana-interface-type;
- description
- "SNA QLLC.";
- }
- identity fastEtherFX {
- base iana-interface-type;
- status deprecated;
- description
- "Obsoleted via RFC 3635.
- ethernetCsmacd(6) should be used instead.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity channel {
- base iana-interface-type;
- description
- "Channel.";
- }
- identity ieee80211 {
- base iana-interface-type;
- description
- "Radio spread spectrum.";
- }
- identity ibm370parChan {
- base iana-interface-type;
- description
- "IBM System 360/370 OEMI Channel.";
- }
- identity escon {
- base iana-interface-type;
- description
- "IBM Enterprise Systems Connection.";
- }
- identity dlsw {
- base iana-interface-type;
- description
- "Data Link Switching.";
- }
- identity isdns {
- base iana-interface-type;
- description
- "ISDN S/T interface.";
- }
- identity isdnu {
- base iana-interface-type;
- description
- "ISDN U interface.";
- }
- identity lapd {
- base iana-interface-type;
- description
- "Link Access Protocol D.";
- }
- identity ipSwitch {
- base iana-interface-type;
- description
- "IP Switching Objects.";
- }
- identity rsrb {
- base iana-interface-type;
- description
- "Remote Source Route Bridging.";
- }
- identity atmLogical {
- base iana-interface-type;
- description
- "ATM Logical Port.";
- reference
- "RFC 3606 - Definitions of Supplemental Managed Objects
- for ATM Interface";
- }
- identity ds0 {
- base iana-interface-type;
- description
- "Digital Signal Level 0.";
- reference
- "RFC 2494 - Definitions of Managed Objects for the DS0
- and DS0 Bundle Interface Type";
- }
- identity ds0Bundle {
- base iana-interface-type;
- description
- "Group of ds0s on the same ds1.";
- reference
- "RFC 2494 - Definitions of Managed Objects for the DS0
- and DS0 Bundle Interface Type";
- }
- identity bsc {
- base iana-interface-type;
- description
- "Bisynchronous Protocol.";
- }
- identity async {
- base iana-interface-type;
- description
- "Asynchronous Protocol.";
- }
- identity cnr {
- base iana-interface-type;
- description
- "Combat Net Radio.";
- }
- identity iso88025Dtr {
- base iana-interface-type;
- description
- "ISO 802.5r DTR.";
- }
- identity eplrs {
- base iana-interface-type;
- description
- "Ext Pos Loc Report Sys.";
- }
- identity arap {
- base iana-interface-type;
- description
- "Appletalk Remote Access Protocol.";
- }
- identity propCnls {
- base iana-interface-type;
- description
- "Proprietary Connectionless Protocol.";
- }
- identity hostPad {
- base iana-interface-type;
- description
- "CCITT-ITU X.29 PAD Protocol.";
- }
- identity termPad {
- base iana-interface-type;
- description
- "CCITT-ITU X.3 PAD Facility.";
- }
- identity frameRelayMPI {
- base iana-interface-type;
- description
- "Multiproto Interconnect over FR.";
- }
- identity x213 {
- base iana-interface-type;
- description
- "CCITT-ITU X213.";
- }
- identity adsl {
- base iana-interface-type;
- description
- "Asymmetric Digital Subscriber Loop.";
- }
- identity radsl {
- base iana-interface-type;
- description
- "Rate-Adapt. Digital Subscriber Loop.";
- }
- identity sdsl {
- base iana-interface-type;
- description
- "Symmetric Digital Subscriber Loop.";
- }
- identity vdsl {
- base iana-interface-type;
- description
- "Very H-Speed Digital Subscrib. Loop.";
- }
- identity iso88025CRFPInt {
- base iana-interface-type;
- description
- "ISO 802.5 CRFP.";
- }
- identity myrinet {
- base iana-interface-type;
- description
- "Myricom Myrinet.";
- }
- identity voiceEM {
- base iana-interface-type;
- description
- "Voice recEive and transMit.";
- }
- identity voiceFXO {
- base iana-interface-type;
- description
- "Voice Foreign Exchange Office.";
- }
- identity voiceFXS {
- base iana-interface-type;
- description
- "Voice Foreign Exchange Station.";
- }
- identity voiceEncap {
- base iana-interface-type;
- description
- "Voice encapsulation.";
- }
- identity voiceOverIp {
- base iana-interface-type;
- description
- "Voice over IP encapsulation.";
- }
- identity atmDxi {
- base iana-interface-type;
- description
- "ATM DXI.";
- }
- identity atmFuni {
- base iana-interface-type;
- description
- "ATM FUNI.";
- }
- identity atmIma {
- base iana-interface-type;
- description
- "ATM IMA.";
- }
- identity pppMultilinkBundle {
- base iana-interface-type;
- description
- "PPP Multilink Bundle.";
- }
- identity ipOverCdlc {
- base iana-interface-type;
- description
- "IBM ipOverCdlc.";
- }
- identity ipOverClaw {
- base iana-interface-type;
- description
- "IBM Common Link Access to Workstn.";
- }
- identity stackToStack {
- base iana-interface-type;
- description
- "IBM stackToStack.";
- }
- identity virtualIpAddress {
- base iana-interface-type;
- description
- "IBM VIPA.";
- }
- identity mpc {
- base iana-interface-type;
- description
- "IBM multi-protocol channel support.";
- }
- identity ipOverAtm {
- base iana-interface-type;
- description
- "IBM ipOverAtm.";
- reference
- "RFC 2320 - Definitions of Managed Objects for Classical IP
- and ARP Over ATM Using SMIv2 (IPOA-MIB)";
- }
- identity iso88025Fiber {
- base iana-interface-type;
- description
- "ISO 802.5j Fiber Token Ring.";
- }
- identity tdlc {
- base iana-interface-type;
- description
- "IBM twinaxial data link control.";
- }
- identity gigabitEthernet {
- base iana-interface-type;
- status deprecated;
- description
- "Obsoleted via RFC 3635.
- ethernetCsmacd(6) should be used instead.";
- reference
- "RFC 3635 - Definitions of Managed Objects for the
- Ethernet-like Interface Types";
- }
- identity hdlc {
- base iana-interface-type;
- description
- "HDLC.";
- }
- identity lapf {
- base iana-interface-type;
- description
- "LAP F.";
- }
- identity v37 {
- base iana-interface-type;
- description
- "V.37.";
- }
- identity x25mlp {
- base iana-interface-type;
- description
- "Multi-Link Protocol.";
- }
- identity x25huntGroup {
- base iana-interface-type;
- description
- "X25 Hunt Group.";
- }
- identity transpHdlc {
- base iana-interface-type;
- description
- "Transp HDLC.";
- }
- identity interleave {
- base iana-interface-type;
- description
- "Interleave channel.";
- }
- identity fast {
- base iana-interface-type;
- description
- "Fast channel.";
- }
- identity ip {
- base iana-interface-type;
- description
- "IP (for APPN HPR in IP networks).";
- }
- identity docsCableMaclayer {
- base iana-interface-type;
- description
- "CATV Mac Layer.";
- }
- identity docsCableDownstream {
- base iana-interface-type;
- description
- "CATV Downstream interface.";
- }
- identity docsCableUpstream {
- base iana-interface-type;
- description
- "CATV Upstream interface.";
- }
- identity a12MppSwitch {
- base iana-interface-type;
- description
- "Avalon Parallel Processor.";
- }
- identity tunnel {
- base iana-interface-type;
- description
- "Encapsulation interface.";
- }
- identity coffee {
- base iana-interface-type;
- description
- "Coffee pot.";
- reference
- "RFC 2325 - Coffee MIB";
- }
- identity ces {
- base iana-interface-type;
- description
- "Circuit Emulation Service.";
- }
- identity atmSubInterface {
- base iana-interface-type;
- description
- "ATM Sub Interface.";
- }
- identity l2vlan {
- base iana-interface-type;
- description
- "Layer 2 Virtual LAN using 802.1Q.";
- }
- identity l3ipvlan {
- base iana-interface-type;
- description
- "Layer 3 Virtual LAN using IP.";
- }
- identity l3ipxvlan {
- base iana-interface-type;
- description
- "Layer 3 Virtual LAN using IPX.";
- }
- identity digitalPowerline {
- base iana-interface-type;
- description
- "IP over Power Lines.";
- }
- identity mediaMailOverIp {
- base iana-interface-type;
- description
- "Multimedia Mail over IP.";
- }
- identity dtm {
- base iana-interface-type;
- description
- "Dynamic synchronous Transfer Mode.";
- }
- identity dcn {
- base iana-interface-type;
- description
- "Data Communications Network.";
- }
- identity ipForward {
- base iana-interface-type;
- description
- "IP Forwarding Interface.";
- }
- identity msdsl {
- base iana-interface-type;
- description
- "Multi-rate Symmetric DSL.";
- }
- identity ieee1394 {
- base iana-interface-type;
-
- description
- "IEEE1394 High Performance Serial Bus.";
- }
- identity if-gsn {
- base iana-interface-type;
- description
- "HIPPI-6400.";
- }
- identity dvbRccMacLayer {
- base iana-interface-type;
- description
- "DVB-RCC MAC Layer.";
- }
- identity dvbRccDownstream {
- base iana-interface-type;
- description
- "DVB-RCC Downstream Channel.";
- }
- identity dvbRccUpstream {
- base iana-interface-type;
- description
- "DVB-RCC Upstream Channel.";
- }
- identity atmVirtual {
- base iana-interface-type;
- description
- "ATM Virtual Interface.";
- }
- identity mplsTunnel {
- base iana-interface-type;
- description
- "MPLS Tunnel Virtual Interface.";
- }
- identity srp {
- base iana-interface-type;
- description
- "Spatial Reuse Protocol.";
- }
- identity voiceOverAtm {
- base iana-interface-type;
- description
- "Voice over ATM.";
- }
- identity voiceOverFrameRelay {
- base iana-interface-type;
- description
- "Voice Over Frame Relay.";
- }
- identity idsl {
- base iana-interface-type;
- description
- "Digital Subscriber Loop over ISDN.";
- }
- identity compositeLink {
- base iana-interface-type;
- description
- "Avici Composite Link Interface.";
- }
- identity ss7SigLink {
- base iana-interface-type;
- description
- "SS7 Signaling Link.";
- }
- identity propWirelessP2P {
- base iana-interface-type;
- description
- "Prop. P2P wireless interface.";
- }
- identity frForward {
- base iana-interface-type;
- description
- "Frame Forward Interface.";
- }
- identity rfc1483 {
- base iana-interface-type;
- description
- "Multiprotocol over ATM AAL5.";
- reference
- "RFC 1483 - Multiprotocol Encapsulation over ATM
- Adaptation Layer 5";
- }
- identity usb {
- base iana-interface-type;
- description
- "USB Interface.";
- }
- identity ieee8023adLag {
- base iana-interface-type;
- description
- "IEEE 802.3ad Link Aggregate.";
- }
- identity bgppolicyaccounting {
- base iana-interface-type;
- description
- "BGP Policy Accounting.";
- }
- identity frf16MfrBundle {
- base iana-interface-type;
- description
- "FRF.16 Multilink Frame Relay.";
- }
- identity h323Gatekeeper {
- base iana-interface-type;
- description
- "H323 Gatekeeper.";
- }
- identity h323Proxy {
- base iana-interface-type;
- description
- "H323 Voice and Video Proxy.";
- }
- identity mpls {
- base iana-interface-type;
- description
- "MPLS.";
- }
- identity mfSigLink {
- base iana-interface-type;
- description
- "Multi-frequency signaling link.";
- }
- identity hdsl2 {
- base iana-interface-type;
- description
- "High Bit-Rate DSL - 2nd generation.";
- }
- identity shdsl {
- base iana-interface-type;
- description
- "Multirate HDSL2.";
- }
- identity ds1FDL {
- base iana-interface-type;
- description
- "Facility Data Link (4Kbps) on a DS1.";
- }
- identity pos {
- base iana-interface-type;
- description
- "Packet over SONET/SDH Interface.";
- }
- identity dvbAsiIn {
- base iana-interface-type;
- description
- "DVB-ASI Input.";
- }
- identity dvbAsiOut {
- base iana-interface-type;
- description
- "DVB-ASI Output.";
- }
- identity plc {
- base iana-interface-type;
- description
- "Power Line Communications.";
- }
- identity nfas {
- base iana-interface-type;
- description
- "Non-Facility Associated Signaling.";
- }
- identity tr008 {
- base iana-interface-type;
- description
- "TR008.";
- }
- identity gr303RDT {
- base iana-interface-type;
- description
- "Remote Digital Terminal.";
- }
- identity gr303IDT {
- base iana-interface-type;
- description
- "Integrated Digital Terminal.";
- }
- identity isup {
- base iana-interface-type;
- description
- "ISUP.";
- }
- identity propDocsWirelessMaclayer {
- base iana-interface-type;
- description
- "Cisco proprietary Maclayer.";
- }
- identity propDocsWirelessDownstream {
- base iana-interface-type;
- description
- "Cisco proprietary Downstream.";
- }
- identity propDocsWirelessUpstream {
- base iana-interface-type;
- description
- "Cisco proprietary Upstream.";
- }
- identity hiperlan2 {
- base iana-interface-type;
- description
- "HIPERLAN Type 2 Radio Interface.";
- }
- identity propBWAp2Mp {
- base iana-interface-type;
- description
- "PropBroadbandWirelessAccesspt2Multipt (use of this value
- for IEEE 802.16 WMAN interfaces as per IEEE Std 802.16f
- is deprecated, and ieee80216WMAN(237) should be used
- instead).";
- }
- identity sonetOverheadChannel {
- base iana-interface-type;
- description
- "SONET Overhead Channel.";
- }
- identity digitalWrapperOverheadChannel {
- base iana-interface-type;
- description
- "Digital Wrapper.";
- }
- identity aal2 {
- base iana-interface-type;
- description
- "ATM adaptation layer 2.";
- }
- identity radioMAC {
- base iana-interface-type;
- description
- "MAC layer over radio links.";
- }
- identity atmRadio {
- base iana-interface-type;
- description
- "ATM over radio links.";
- }
- identity imt {
- base iana-interface-type;
- description
- "Inter-Machine Trunks.";
- }
- identity mvl {
- base iana-interface-type;
- description
- "Multiple Virtual Lines DSL.";
- }
- identity reachDSL {
- base iana-interface-type;
- description
- "Long Reach DSL.";
- }
- identity frDlciEndPt {
- base iana-interface-type;
- description
- "Frame Relay DLCI End Point.";
- }
- identity atmVciEndPt {
- base iana-interface-type;
- description
- "ATM VCI End Point.";
- }
- identity opticalChannel {
- base iana-interface-type;
- description
- "Optical Channel.";
- }
- identity opticalTransport {
- base iana-interface-type;
- description
- "Optical Transport.";
- }
- identity propAtm {
- base iana-interface-type;
- description
- "Proprietary ATM.";
- }
- identity voiceOverCable {
- base iana-interface-type;
- description
- "Voice Over Cable Interface.";
- }
- identity infiniband {
- base iana-interface-type;
- description
- "Infiniband.";
- }
- identity teLink {
- base iana-interface-type;
- description
- "TE Link.";
- }
- identity q2931 {
- base iana-interface-type;
- description
- "Q.2931.";
- }
- identity virtualTg {
- base iana-interface-type;
- description
- "Virtual Trunk Group.";
- }
- identity sipTg {
- base iana-interface-type;
- description
- "SIP Trunk Group.";
- }
- identity sipSig {
- base iana-interface-type;
- description
- "SIP Signaling.";
- }
- identity docsCableUpstreamChannel {
- base iana-interface-type;
- description
- "CATV Upstream Channel.";
- }
- identity econet {
- base iana-interface-type;
- description
- "Acorn Econet.";
- }
- identity pon155 {
- base iana-interface-type;
- description
- "FSAN 155Mb Symetrical PON interface.";
- }
- identity pon622 {
- base iana-interface-type;
- description
- "FSAN 622Mb Symetrical PON interface.";
- }
- identity bridge {
- base iana-interface-type;
- description
- "Transparent bridge interface.";
- }
- identity linegroup {
- base iana-interface-type;
- description
- "Interface common to multiple lines.";
- }
- identity voiceEMFGD {
- base iana-interface-type;
- description
- "Voice E&M Feature Group D.";
- }
- identity voiceFGDEANA {
- base iana-interface-type;
- description
- "Voice FGD Exchange Access North American.";
- }
- identity voiceDID {
- base iana-interface-type;
- description
- "Voice Direct Inward Dialing.";
- }
- identity mpegTransport {
- base iana-interface-type;
- description
- "MPEG transport interface.";
- }
- identity sixToFour {
- base iana-interface-type;
- status deprecated;
- description
- "6to4 interface (DEPRECATED).";
- reference
- "RFC 4087 - IP Tunnel MIB";
- }
- identity gtp {
- base iana-interface-type;
- description
- "GTP (GPRS Tunneling Protocol).";
- }
- identity pdnEtherLoop1 {
- base iana-interface-type;
- description
- "Paradyne EtherLoop 1.";
- }
- identity pdnEtherLoop2 {
- base iana-interface-type;
- description
- "Paradyne EtherLoop 2.";
- }
- identity opticalChannelGroup {
- base iana-interface-type;
- description
- "Optical Channel Group.";
- }
- identity homepna {
- base iana-interface-type;
- description
- "HomePNA ITU-T G.989.";
- }
- identity gfp {
- base iana-interface-type;
- description
- "Generic Framing Procedure (GFP).";
- }
- identity ciscoISLvlan {
- base iana-interface-type;
- description
- "Layer 2 Virtual LAN using Cisco ISL.";
- }
- identity actelisMetaLOOP {
- base iana-interface-type;
- description
- "Acteleis proprietary MetaLOOP High Speed Link.";
- }
- identity fcipLink {
- base iana-interface-type;
- description
- "FCIP Link.";
- }
- identity rpr {
- base iana-interface-type;
- description
- "Resilient Packet Ring Interface Type.";
- }
- identity qam {
- base iana-interface-type;
- description
- "RF Qam Interface.";
- }
- identity lmp {
- base iana-interface-type;
- description
- "Link Management Protocol.";
- reference
- "RFC 4327 - Link Management Protocol (LMP) Management
- Information Base (MIB)";
- }
- identity cblVectaStar {
- base iana-interface-type;
- description
- "Cambridge Broadband Networks Limited VectaStar.";
- }
- identity docsCableMCmtsDownstream {
- base iana-interface-type;
- description
- "CATV Modular CMTS Downstream Interface.";
- }
- identity adsl2 {
- base iana-interface-type;
- status deprecated;
- description
- "Asymmetric Digital Subscriber Loop Version 2
- (DEPRECATED/OBSOLETED - please use adsl2plus(238)
- instead).";
- reference
- "RFC 4706 - Definitions of Managed Objects for Asymmetric
- Digital Subscriber Line 2 (ADSL2)";
- }
- identity macSecControlledIF {
- base iana-interface-type;
- description
- "MACSecControlled.";
- }
- identity macSecUncontrolledIF {
- base iana-interface-type;
- description
- "MACSecUncontrolled.";
- }
- identity aviciOpticalEther {
- base iana-interface-type;
- description
- "Avici Optical Ethernet Aggregate.";
- }
- identity atmbond {
- base iana-interface-type;
- description
- "atmbond.";
- }
- identity voiceFGDOS {
- base iana-interface-type;
- description
- "Voice FGD Operator Services.";
- }
- identity mocaVersion1 {
- base iana-interface-type;
- description
- "MultiMedia over Coax Alliance (MoCA) Interface
- as documented in information provided privately to IANA.";
- }
- identity ieee80216WMAN {
- base iana-interface-type;
- description
- "IEEE 802.16 WMAN interface.";
- }
- identity adsl2plus {
- base iana-interface-type;
- description
- "Asymmetric Digital Subscriber Loop Version 2 -
- Version 2 Plus and all variants.";
- }
- identity dvbRcsMacLayer {
- base iana-interface-type;
- description
- "DVB-RCS MAC Layer.";
- reference
- "RFC 5728 - The SatLabs Group DVB-RCS MIB";
- }
- identity dvbTdm {
- base iana-interface-type;
- description
- "DVB Satellite TDM.";
- reference
- "RFC 5728 - The SatLabs Group DVB-RCS MIB";
- }
- identity dvbRcsTdma {
- base iana-interface-type;
- description
- "DVB-RCS TDMA.";
- reference
- "RFC 5728 - The SatLabs Group DVB-RCS MIB";
- }
- identity x86Laps {
- base iana-interface-type;
- description
- "LAPS based on ITU-T X.86/Y.1323.";
- }
- identity wwanPP {
- base iana-interface-type;
- description
- "3GPP WWAN.";
- }
- identity wwanPP2 {
- base iana-interface-type;
- description
- "3GPP2 WWAN.";
- }
- identity voiceEBS {
- base iana-interface-type;
- description
- "Voice P-phone EBS physical interface.";
- }
- identity ifPwType {
- base iana-interface-type;
- description
- "Pseudowire interface type.";
- reference
- "RFC 5601 - Pseudowire (PW) Management Information Base (MIB)";
- }
- identity ilan {
- base iana-interface-type;
- description
- "Internal LAN on a bridge per IEEE 802.1ap.";
- }
- identity pip {
- base iana-interface-type;
- description
- "Provider Instance Port on a bridge per IEEE 802.1ah PBB.";
- }
- identity aluELP {
- base iana-interface-type;
- description
- "Alcatel-Lucent Ethernet Link Protection.";
- }
- identity gpon {
- base iana-interface-type;
- description
- "Gigabit-capable passive optical networks (G-PON) as per
- ITU-T G.948.";
- }
- identity vdsl2 {
- base iana-interface-type;
- description
- "Very high speed digital subscriber line Version 2
- (as per ITU-T Recommendation G.993.2).";
- reference
- "RFC 5650 - Definitions of Managed Objects for Very High
- Speed Digital Subscriber Line 2 (VDSL2)";
- }
- identity capwapDot11Profile {
- base iana-interface-type;
- description
- "WLAN Profile Interface.";
- reference
- "RFC 5834 - Control and Provisioning of Wireless Access
- Points (CAPWAP) Protocol Binding MIB for
- IEEE 802.11";
- }
- identity capwapDot11Bss {
- base iana-interface-type;
- description
- "WLAN BSS Interface.";
- reference
- "RFC 5834 - Control and Provisioning of Wireless Access
- Points (CAPWAP) Protocol Binding MIB for
- IEEE 802.11";
- }
- identity capwapWtpVirtualRadio {
- base iana-interface-type;
- description
- "WTP Virtual Radio Interface.";
- reference
- "RFC 5833 - Control and Provisioning of Wireless Access
- Points (CAPWAP) Protocol Base MIB";
- }
- identity bits {
- base iana-interface-type;
- description
- "bitsport.";
- }
- identity docsCableUpstreamRfPort {
- base iana-interface-type;
- description
- "DOCSIS CATV Upstream RF Port.";
- }
- identity cableDownstreamRfPort {
- base iana-interface-type;
- description
- "CATV downstream RF Port.";
- }
- identity vmwareVirtualNic {
- base iana-interface-type;
- description
- "VMware Virtual Network Interface.";
- }
- identity ieee802154 {
- base iana-interface-type;
- description
- "IEEE 802.15.4 WPAN interface.";
- reference
- "IEEE 802.15.4-2006";
- }
- identity otnOdu {
- base iana-interface-type;
- description
- "OTN Optical Data Unit.";
- }
- identity otnOtu {
- base iana-interface-type;
- description
- "OTN Optical channel Transport Unit.";
- }
- identity ifVfiType {
- base iana-interface-type;
- description
- "VPLS Forwarding Instance Interface Type.";
- }
- identity g9981 {
- base iana-interface-type;
- description
- "G.998.1 bonded interface.";
- }
- identity g9982 {
- base iana-interface-type;
- description
- "G.998.2 bonded interface.";
- }
- identity g9983 {
- base iana-interface-type;
- description
- "G.998.3 bonded interface.";
- }
-
- identity aluEpon {
- base iana-interface-type;
- description
- "Ethernet Passive Optical Networks (E-PON).";
- }
- identity aluEponOnu {
- base iana-interface-type;
- description
- "EPON Optical Network Unit.";
- }
- identity aluEponPhysicalUni {
- base iana-interface-type;
- description
- "EPON physical User to Network interface.";
- }
- identity aluEponLogicalLink {
- base iana-interface-type;
- description
- "The emulation of a point-to-point link over the EPON
- layer.";
- }
- identity aluGponOnu {
- base iana-interface-type;
- description
- "GPON Optical Network Unit.";
- reference
- "ITU-T G.984.2";
- }
- identity aluGponPhysicalUni {
- base iana-interface-type;
- description
- "GPON physical User to Network interface.";
- reference
- "ITU-T G.984.2";
- }
- identity vmwareNicTeam {
- base iana-interface-type;
- description
- "VMware NIC Team.";
- }
- identity docsOfdmDownstream {
- base iana-interface-type;
- description
- "CATV Downstream OFDM interface.";
- }
- identity docsOfdmaUpstream {
- base iana-interface-type;
- description
- "CATV Upstream OFDMA interface.";
- }
- identity gfast {
- base iana-interface-type;
- description
- "G.fast port.";
- reference
- "ITU-T G.9701";
- }
- identity sdci {
- base iana-interface-type;
- description
- "SDCI (IO-Link).";
- reference
- "IEC 61131-9 Edition 1.0 2013-09";
- }
- identity xboxWireless {
- base iana-interface-type;
- description
- "Xbox wireless.";
- }
- identity fastdsl {
- base iana-interface-type;
- description
- "FastDSL.";
- reference
- "BBF TR-355";
- }
- identity docsCableScte55d1FwdOob {
- base iana-interface-type;
- description
- "Cable SCTE 55-1 OOB Forward Channel.";
- }
- identity docsCableScte55d1RetOob {
- base iana-interface-type;
- description
- "Cable SCTE 55-1 OOB Return Channel.";
- }
- identity docsCableScte55d2DsOob {
- base iana-interface-type;
- description
- "Cable SCTE 55-2 OOB Downstream Channel.";
- }
- identity docsCableScte55d2UsOob {
- base iana-interface-type;
- description
- "Cable SCTE 55-2 OOB Upstream Channel.";
- }
- identity docsCableNdf {
- base iana-interface-type;
- description
- "Cable Narrowband Digital Forward.";
- }
- identity docsCableNdr {
- base iana-interface-type;
- description
- "Cable Narrowband Digital Return.";
- }
- identity ptm {
- base iana-interface-type;
- description
- "Packet Transfer Mode.";
- }
-}
+++ /dev/null
-module ietf-dhcpv6-types {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-dhcpv6-types";
- prefix "dhcpv6-types";
-
- import ietf-inet-types {
- prefix inet;
- }
- import ietf-yang-types {
- prefix yang;
- }
-
- organization "DHC WG";
- contact
- "cuiyong@tsinghua.edu.cn
- lh.sunlinh@gmail.com
- ian.farrer@telekom.de
- sladjana.zechlin@telekom.de
- hezihao9512@gmail.com";
-
- description "This model defines a YANG data model that can be
- used to define some commonly used DHCPv6 types";
-
- revision 2018-01-30 {
- description "Initial revision";
- reference "I-D: draft-ietf-dhc-dhcpv6-yang";
- }
-
- /*
- * Grouping
- */
- grouping vendor-infor {
- description "Vendor information.";
- container vendor-info {
- description "";
- leaf ent-num {
- type uint32;
- mandatory true;
- description "enterprise number";
- }
- leaf-list data {
- type string;
- description "specific vendor info";
- }
- }
- }
-
- grouping duid {
- description
- "Each server and client has only one DUID (DHCP Unique Identifier).
- The DUID here identifies a unique DHCPv6 server for clients. DUID
- consists of a two-octet type field and an arbitrary length (no more
- than 128 bytes) content field. Currently there are four defined types
- of DUIDs in RFC3315 and RFC6355 - DUID-LLT, DUID-EN, DUID-LL and
- DUID-UUID. DUID-Uknown represents those unconventional DUIDs.";
- reference "RFC3315: Section 9 and RFC6355: Section 4";
- leaf type-code {
- type uint16;
- default 65535;
- description "Type code of this DUID";
- }
- choice duid-type {
- default duid-unknown;
- description "Selects the format for the DUID.";
- case duid-llt {
- description "DUID Based on Link-layer Address Plus Time
- (Type 1 - DUID-LLT)";
- reference "RFC3315 Section 9.2";
- leaf duid-llt-hardware-type {
- type uint16;
- description "Hardware type as assigned by IANA (RFC826).";
- }
- leaf duid-llt-time {
- type yang:timeticks;
- description "The time value is the time that the DUID is
- generated represented in seconds since midnight (UTC),
- January 1, 2000, modulo 2^32.";
- }
- leaf duid-llt-link-layer-addr {
- type yang:mac-address;
- description "Link-layer address as described in RFC2464";
- }
- }
- case duid-en {
- description "DUID Assigned by Vendor Based on Enterprise Number
- (Type 2 - DUID-EN)";
- reference "RFC3315 Section 9.3";
- leaf duid-en-enterprise-number {
- type uint32;
- description "Vendor's registered Private Enterprise Number as
- maintained by IANA";
- }
- leaf duid-en-identifier {
- type string;
- description "Indentifier, unique to the device that is
- using it";
- }
- }
- case duid-ll {
- description "DUID Based on Link-layer Address (Type 3 - DUID-LL)";
- reference "RFC3315 Section 9.4";
- leaf duid-ll-hardware-type {
- type uint16;
- description "Hardware type as assigned by IANA (RFC826).";
- }
- leaf duid-ll-link-layer-addr {
- type yang:mac-address;
- description "Link-layer address as described in RFC2464";
- }
- }
- case duid-uuid {
- description "DUID Based on Universally Unique Identifier
- (Type 4 - DUID-UUID)";
- reference "RFC6335 Defination of the UUID-Based Unique Identifier";
- leaf uuid {
- type yang:uuid;
- description "A Universally Unique IDentifier in the string
- representation defined in RFC 4122. The canonical
- representation uses lowercase characters";
- }
- }
- case duid-unknown {
- description "DUID based on free raw bytes";
- leaf data {
- type binary;
- description "The bits to be used as the identifier";
- }
- }
- }
- }
-
- grouping portset-para {
- description "portset parameters";
- container port-parameter {
- description "port parameter";
- leaf offset {
- type uint8;
- mandatory true;
- description "offset in a port set";
- }
- leaf psid-len {
- type uint8;
- mandatory true;
- description "length of a psid";
- }
- leaf psid {
- type uint16;
- mandatory true;
- description "psid value";
- }
- }
- }
-
- grouping iaid {
- description "IA is a construct through which a server and a
- client can identify, group, and manage a set of related IPv6
- addresses. The key of the list is a 4-byte number IAID defined
- in [RFC3315].";
- list identity-association {
- config "false";
- description "IA";
- leaf iaid {
- type uint32;
- mandatory true;
- description "IAID";
- }
- leaf ia-type {
- type string;
- mandatory true;
- description "IA type";
- }
- leaf-list ipv6-addr {
- type inet:ipv6-address;
- description "ipv6 address";
- }
- leaf-list ipv6-prefix {
- type inet:ipv6-prefix;
- description "ipv6 prefix";
- }
- leaf-list prefix-length {
- type uint8;
- description "ipv6 prefix length";
- }
- leaf t1-time {
- type yang:timeticks;
- mandatory true;
- description "t1 time";
- }
- leaf t2-time {
- type yang:timeticks;
- mandatory true;
- description "t2 time";
- }
- leaf preferred-lifetime {
- type yang:timeticks;
- mandatory true;
- description "preferred lifetime";
- }
- leaf valid-lifetime {
- type yang:timeticks;
- mandatory true;
- description "valid lifetime";
- }
- }
- }
-
-}
+++ /dev/null
-module ietf-ip {
- yang-version 1.1;
- namespace "urn:ietf:params:xml:ns:yang:ietf-ip";
- prefix ip;
-
- import ietf-interfaces {
- prefix if;
- }
- import ietf-inet-types {
- prefix inet;
- }
- import ietf-yang-types {
- prefix yang;
- }
-
- organization
- "IETF NETMOD (Network Modeling) Working Group";
-
- contact
- "WG Web: <https://datatracker.ietf.org/wg/netmod/>
- WG List: <mailto:netmod@ietf.org>
- Editor: Martin Bjorklund
- <mailto:mbj@tail-f.com>";
- description
- "This module contains a collection of YANG definitions for
- managing IP implementations.
- Copyright (c) 2018 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject
- to the license terms contained in, the Simplified BSD License
- set forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
- This version of this YANG module is part of RFC 8344; see
- the RFC itself for full legal notices.";
-
- revision 2018-02-22 {
- description
- "Updated to support NMDA.";
- reference
- "RFC 8344: A YANG Data Model for IP Management";
- }
-
- revision 2014-06-16 {
- description
- "Initial revision.";
- reference
- "RFC 7277: A YANG Data Model for IP Management";
- }
-
- /*
- * Features
- */
-
- feature ipv4-non-contiguous-netmasks {
- description
- "Indicates support for configuring non-contiguous
- subnet masks.";
- }
-
- feature ipv6-privacy-autoconf {
- description
- "Indicates support for privacy extensions for stateless address
- autoconfiguration in IPv6.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6";
- }
-
- /*
- * Typedefs
- */
-
- typedef ip-address-origin {
- type enumeration {
- enum other {
- description
- "None of the following.";
- }
-
- enum static {
- description
- "Indicates that the address has been statically
- configured -- for example, using the Network Configuration
- Protocol (NETCONF) or a command line interface.";
- }
- enum dhcp {
- description
- "Indicates an address that has been assigned to this
- system by a DHCP server.";
- }
- enum link-layer {
- description
- "Indicates an address created by IPv6 stateless
- autoconfiguration that embeds a link-layer address in its
- interface identifier.";
- }
- enum random {
- description
- "Indicates an address chosen by the system at
- random, e.g., an IPv4 address within 169.254/16, a
- temporary address as described in RFC 4941, or a
- semantically opaque address as described in RFC 7217.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- RFC 7217: A Method for Generating Semantically Opaque
- Interface Identifiers with IPv6 Stateless
- Address Autoconfiguration (SLAAC)";
- }
- }
- description
- "The origin of an address.";
- }
-
- typedef neighbor-origin {
- type enumeration {
- enum other {
- description
- "None of the following.";
- }
- enum static {
- description
- "Indicates that the mapping has been statically
- configured -- for example, using NETCONF or a command line
- interface.";
- }
-
- enum dynamic {
- description
- "Indicates that the mapping has been dynamically resolved
- using, for example, IPv4 ARP or the IPv6 Neighbor
- Discovery protocol.";
- }
- }
- description
- "The origin of a neighbor entry.";
- }
-
- /*
- * Data nodes
- */
-
- augment "/if:interfaces/if:interface" {
- description
- "IP parameters on interfaces.
- If an interface is not capable of running IP, the server
- must not allow the client to configure these parameters.";
-
- container ipv4 {
- presence
- "Enables IPv4 unless the 'enabled' leaf
- (which defaults to 'true') is set to 'false'";
- description
- "Parameters for the IPv4 address family.";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv4 is enabled or disabled on this
- interface. When IPv4 is enabled, this interface is
- connected to an IPv4 stack, and the interface can send
- and receive IPv4 packets.";
- }
- leaf forwarding {
- type boolean;
- default false;
- description
- "Controls IPv4 packet forwarding of datagrams received by,
- but not addressed to, this interface. IPv4 routers
- forward datagrams. IPv4 hosts do not (except those
- source-routed via the host).";
- }
-
- leaf mtu {
- type uint16 {
- range "68..max";
- }
- units "octets";
- description
- "The size, in octets, of the largest IPv4 packet that the
- interface will send and receive.
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 791: Internet Protocol";
- }
- list address {
- key "ip";
- description
- "The list of IPv4 addresses on the interface.";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 address on the interface.";
- }
- choice subnet {
- mandatory true;
- description
- "The subnet can be specified as a prefix length or,
- if the server supports non-contiguous netmasks, as
- a netmask.";
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- description
- "The length of the subnet prefix.";
- }
- leaf netmask {
- if-feature ipv4-non-contiguous-netmasks;
- type yang:dotted-quad;
- description
- "The subnet specified as a netmask.";
- }
- }
-
- leaf origin {
- type ip-address-origin;
- config false;
- description
- "The origin of this address.";
- }
- }
- list neighbor {
- key "ip";
- description
- "A list of mappings from IPv4 addresses to
- link-layer addresses.
- Entries in this list in the intended configuration are
- used as static entries in the ARP Cache.
- In the operational state, this list represents the ARP
- Cache.";
- reference
- "RFC 826: An Ethernet Address Resolution Protocol";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- description
- "The IPv4 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- config false;
- description
- "The origin of this neighbor entry.";
- }
- }
- }
-
- container ipv6 {
- presence
- "Enables IPv6 unless the 'enabled' leaf
- (which defaults to 'true') is set to 'false'";
- description
- "Parameters for the IPv6 address family.";
-
- leaf enabled {
- type boolean;
- default true;
- description
- "Controls whether IPv6 is enabled or disabled on this
- interface. When IPv6 is enabled, this interface is
- connected to an IPv6 stack, and the interface can send
- and receive IPv6 packets.";
- }
- leaf forwarding {
- type boolean;
- default false;
- description
- "Controls IPv6 packet forwarding of datagrams received by,
- but not addressed to, this interface. IPv6 routers
- forward datagrams. IPv6 hosts do not (except those
- source-routed via the host).";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 6.2.1, IsRouter";
- }
- leaf mtu {
- type uint32 {
- range "1280..max";
- }
- units "octets";
- description
- "The size, in octets, of the largest IPv6 packet that the
- interface will send and receive.
- The server may restrict the allowed values for this leaf,
- depending on the interface's type.
- If this leaf is not configured, the operationally used MTU
- depends on the interface's type.";
- reference
- "RFC 8200: Internet Protocol, Version 6 (IPv6)
- Specification
- Section 5";
- }
-
- list address {
- key "ip";
- description
- "The list of IPv6 addresses on the interface.";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- description
- "The IPv6 address on the interface.";
- }
- leaf prefix-length {
- type uint8 {
- range "0..128";
- }
- mandatory true;
- description
- "The length of the subnet prefix.";
- }
- leaf origin {
- type ip-address-origin;
- config false;
- description
- "The origin of this address.";
- }
- leaf status {
- type enumeration {
- enum preferred {
- description
- "This is a valid address that can appear as the
- destination or source address of a packet.";
- }
- enum deprecated {
- description
- "This is a valid but deprecated address that should
- no longer be used as a source address in new
- communications, but packets addressed to such an
- address are processed as expected.";
- }
- enum invalid {
- description
- "This isn't a valid address, and it shouldn't appear
- as the destination or source address of a packet.";
- }
-
- enum inaccessible {
- description
- "The address is not accessible because the interface
- to which this address is assigned is not
- operational.";
- }
- enum unknown {
- description
- "The status cannot be determined for some reason.";
- }
- enum tentative {
- description
- "The uniqueness of the address on the link is being
- verified. Addresses in this state should not be
- used for general communication and should only be
- used to determine the uniqueness of the address.";
- }
- enum duplicate {
- description
- "The address has been determined to be non-unique on
- the link and so must not be used.";
- }
- enum optimistic {
- description
- "The address is available for use, subject to
- restrictions, while its uniqueness on a link is
- being verified.";
- }
- }
- config false;
- description
- "The status of an address. Most of the states correspond
- to states from the IPv6 Stateless Address
- Autoconfiguration protocol.";
- reference
- "RFC 4293: Management Information Base for the
- Internet Protocol (IP)
- - IpAddressStatusTC
- RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- }
-
- list neighbor {
- key "ip";
- description
- "A list of mappings from IPv6 addresses to
- link-layer addresses.
- Entries in this list in the intended configuration are
- used as static entries in the Neighbor Cache.
- In the operational state, this list represents the
- Neighbor Cache.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- description
- "The IPv6 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- mandatory true;
- description
- "The link-layer address of the neighbor node.
- In the operational state, if the neighbor's 'state' leaf
- is 'incomplete', this leaf is not instantiated.";
- }
- leaf origin {
- type neighbor-origin;
- config false;
- description
- "The origin of this neighbor entry.";
- }
- leaf is-router {
- type empty;
- config false;
- description
- "Indicates that the neighbor node acts as a router.";
- }
-
- leaf state {
- type enumeration {
- enum incomplete {
- description
- "Address resolution is in progress, and the
- link-layer address of the neighbor has not yet been
- determined.";
- }
- enum reachable {
- description
- "Roughly speaking, the neighbor is known to have been
- reachable recently (within tens of seconds ago).";
- }
- enum stale {
- description
- "The neighbor is no longer known to be reachable, but
- until traffic is sent to the neighbor no attempt
- should be made to verify its reachability.";
- }
- enum delay {
- description
- "The neighbor is no longer known to be reachable, and
- traffic has recently been sent to the neighbor.
- Rather than probe the neighbor immediately, however,
- delay sending probes for a short while in order to
- give upper-layer protocols a chance to provide
- reachability confirmation.";
- }
- enum probe {
- description
- "The neighbor is no longer known to be reachable, and
- unicast Neighbor Solicitation probes are being sent
- to verify reachability.";
- }
- }
- config false;
- description
- "The Neighbor Unreachability Detection state of this
- entry.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 7.3.2";
- }
- }
-
- leaf dup-addr-detect-transmits {
- type uint32;
- default 1;
- description
- "The number of consecutive Neighbor Solicitation messages
- sent while performing Duplicate Address Detection on a
- tentative address. A value of zero indicates that
- Duplicate Address Detection is not performed on
- tentative addresses. A value of one indicates a single
- transmission with no follow-up retransmissions.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- container autoconf {
- description
- "Parameters to control the autoconfiguration of IPv6
- addresses, as described in RFC 4862.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration";
-
- leaf create-global-addresses {
- type boolean;
- default true;
- description
- "If enabled, the host creates global addresses as
- described in RFC 4862.";
- reference
- "RFC 4862: IPv6 Stateless Address Autoconfiguration
- Section 5.5";
- }
- leaf create-temporary-addresses {
- if-feature ipv6-privacy-autoconf;
- type boolean;
- default false;
- description
- "If enabled, the host creates temporary addresses as
- described in RFC 4941.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6";
- }
-
- leaf temporary-valid-lifetime {
- if-feature ipv6-privacy-autoconf;
- type uint32;
- units "seconds";
- default 604800;
- description
- "The time period during which the temporary address
- is valid.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- - TEMP_VALID_LIFETIME";
- }
- leaf temporary-preferred-lifetime {
- if-feature ipv6-privacy-autoconf;
- type uint32;
- units "seconds";
- default 86400;
- description
- "The time period during which the temporary address is
- preferred.";
- reference
- "RFC 4941: Privacy Extensions for Stateless Address
- Autoconfiguration in IPv6
- - TEMP_PREFERRED_LIFETIME";
- }
- }
- }
- }
-
- /*
- * Legacy operational state data nodes
- */
-
- augment "/if:interfaces-state/if:interface" {
- status deprecated;
- description
- "Data nodes for the operational state of IP on interfaces.";
-
- container ipv4 {
- presence
- "Present if IPv4 is enabled on this interface";
- config false;
- status deprecated;
- description
- "Interface-specific parameters for the IPv4 address family.";
-
- leaf forwarding {
- type boolean;
- status deprecated;
- description
- "Indicates whether IPv4 packet forwarding is enabled or
- disabled on this interface.";
- }
- leaf mtu {
- type uint16 {
- range "68..max";
- }
- units "octets";
- status deprecated;
- description
- "The size, in octets, of the largest IPv4 packet that the
- interface will send and receive.";
- reference
- "RFC 791: Internet Protocol";
- }
- list address {
- key "ip";
- status deprecated;
- description
- "The list of IPv4 addresses on the interface.";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- status deprecated;
- description
- "The IPv4 address on the interface.";
- }
- choice subnet {
- status deprecated;
- description
- "The subnet can be specified as a prefix length or,
- if the server supports non-contiguous netmasks, as
- a netmask.";
- leaf prefix-length {
- type uint8 {
- range "0..32";
- }
- status deprecated;
- description
- "The length of the subnet prefix.";
- }
- leaf netmask {
- if-feature ipv4-non-contiguous-netmasks;
- type yang:dotted-quad;
- status deprecated;
- description
- "The subnet specified as a netmask.";
- }
- }
- leaf origin {
- type ip-address-origin;
- status deprecated;
- description
- "The origin of this address.";
- }
- }
- list neighbor {
- key "ip";
- status deprecated;
- description
- "A list of mappings from IPv4 addresses to
- link-layer addresses.
- This list represents the ARP Cache.";
- reference
- "RFC 826: An Ethernet Address Resolution Protocol";
-
- leaf ip {
- type inet:ipv4-address-no-zone;
- status deprecated;
- description
- "The IPv4 address of the neighbor node.";
- }
-
- leaf link-layer-address {
- type yang:phys-address;
- status deprecated;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- status deprecated;
- description
- "The origin of this neighbor entry.";
- }
- }
- }
-
- container ipv6 {
- presence
- "Present if IPv6 is enabled on this interface";
- config false;
- status deprecated;
- description
- "Parameters for the IPv6 address family.";
-
- leaf forwarding {
- type boolean;
- default false;
- status deprecated;
- description
- "Indicates whether IPv6 packet forwarding is enabled or
- disabled on this interface.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 6.2.1, IsRouter";
- }
- leaf mtu {
- type uint32 {
- range "1280..max";
- }
- units "octets";
- status deprecated;
- description
- "The size, in octets, of the largest IPv6 packet that the
- interface will send and receive.";
- reference
- "RFC 8200: Internet Protocol, Version 6 (IPv6)
- Specification
- Section 5";
- }
- list address {
- key "ip";
- status deprecated;
- description
- "The list of IPv6 addresses on the interface.";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- status deprecated;
- description
- "The IPv6 address on the interface.";
- }
- leaf prefix-length {
- type uint8 {
- range "0..128";
- }
- mandatory true;
- status deprecated;
- description
- "The length of the subnet prefix.";
- }
- leaf origin {
- type ip-address-origin;
- status deprecated;
- description
- "The origin of this address.";
- }
- leaf status {
- type enumeration {
- enum preferred {
- description
- "This is a valid address that can appear as the
- destination or source address of a packet.";
- }
- enum deprecated {
- description
- "This is a valid but deprecated address that should
- no longer be used as a source address in new
- communications, but packets addressed to such an
- address are processed as expected.";
- }
- enum invalid {
- description
- "This isn't a valid address, and it shouldn't appear
- as the destination or source address of a packet.";
- }
-
- enum inaccessible {
- description
- "The address is not accessible because the interface
- to which this address is assigned is not
- operational.";
- }
- enum unknown {
- description
- "The status cannot be determined for some reason.";
- }
- enum tentative {
- description
- "The uniqueness of the address on the link is being
- verified. Addresses in this state should not be
- used for general communication and should only be
- used to determine the uniqueness of the address.";
- }
- enum duplicate {
- description
- "The address has been determined to be non-unique on
- the link and so must not be used.";
- }
- enum optimistic {
- description
- "The address is available for use, subject to
- restrictions, while its uniqueness on a link is
- being verified.";
- }
- }
- status deprecated;
- description
- "The status of an address. Most of the states correspond
- to states from the IPv6 Stateless Address
- Autoconfiguration protocol.";
- reference
- "RFC 4293: Management Information Base for the
- Internet Protocol (IP)
- - IpAddressStatusTC
- RFC 4862: IPv6 Stateless Address Autoconfiguration";
- }
- }
-
- list neighbor {
- key "ip";
- status deprecated;
- description
- "A list of mappings from IPv6 addresses to
- link-layer addresses.
- This list represents the Neighbor Cache.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)";
-
- leaf ip {
- type inet:ipv6-address-no-zone;
- status deprecated;
- description
- "The IPv6 address of the neighbor node.";
- }
- leaf link-layer-address {
- type yang:phys-address;
- status deprecated;
- description
- "The link-layer address of the neighbor node.";
- }
- leaf origin {
- type neighbor-origin;
- status deprecated;
- description
- "The origin of this neighbor entry.";
- }
- leaf is-router {
- type empty;
- status deprecated;
- description
- "Indicates that the neighbor node acts as a router.";
- }
- leaf state {
- type enumeration {
- enum incomplete {
- description
- "Address resolution is in progress, and the
- link-layer address of the neighbor has not yet been
- determined.";
- }
- enum reachable {
- description
- "Roughly speaking, the neighbor is known to have been
- reachable recently (within tens of seconds ago).";
- }
- enum stale {
- description
- "The neighbor is no longer known to be reachable, but
- until traffic is sent to the neighbor no attempt
- should be made to verify its reachability.";
- }
- enum delay {
- description
- "The neighbor is no longer known to be reachable, and
- traffic has recently been sent to the neighbor.
- Rather than probe the neighbor immediately, however,
- delay sending probes for a short while in order to
- give upper-layer protocols a chance to provide
- reachability confirmation.";
- }
- enum probe {
- description
- "The neighbor is no longer known to be reachable, and
- unicast Neighbor Solicitation probes are being sent
- to verify reachability.";
- }
- }
- status deprecated;
- description
- "The Neighbor Unreachability Detection state of this
- entry.";
- reference
- "RFC 4861: Neighbor Discovery for IP version 6 (IPv6)
- Section 7.3.2";
- }
- }
- }
- }
-}
+++ /dev/null
-module org-openroadm-user-mgmt {
- namespace "http://org/openroadm/user-mgmt";
- prefix org-openroadm-user-mgmt;
-
- organization
- "Open ROADM MSA";
- contact
- "OpenROADM.org";
- description
- "YANG definitions of user managements.
-
- Copyright of the Members of the Open ROADM MSA Agreement dated (c) 2016,
- AT&T Intellectual Property. All other rights reserved.
-
- 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 following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation and/or
- other materials provided with the distribution.
- * Neither the Members of the Open ROADM MSA Agreement nor the names of its
- contributors may be used to endorse or promote products derived from this software
- without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT ''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 THE MEMBERS OF THE OPEN ROADM MSA AGREEMENT 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";
-
- revision 2017-12-15 {
- description
- "Version 2.2";
- }
- revision 2017-09-29 {
- description
- "Version 2.1";
- }
- revision 2017-06-26 {
- description
- "Version 2.0";
- }
- revision 2016-10-14 {
- description
- "Version 1.2";
- }
-
- typedef username-type {
- type string {
- length "3..32";
- pattern "[a-z][a-z0-9]{2,31}" {
- error-message
- "A username must begin with a lowercase letter, The remainder
- of the string may contain lowercase letters, or numbers 0 through 9.";
- }
- }
- description
- "The user name string identifying this entry.";
- }
-
- typedef password-type {
- type string {
- length "8..128";
- pattern "[a-zA-Z0-9!$%\\^()\\[\\]_\\-~{}.+]*" {
- error-message "Password content does not meet the requirements";
- }
- }
- description
- "The password for this entry. This shouldn't be in clear text
- The Password must contain at least 2 characters from
- each of the following groups:
- a) Lower case alphabetic (a-z)
- b) Upper case alphabetic (A-Z)
- c) Numeric 0-9
- d) Special characters Allowed !$%^()[]_-~{}.+
- Password must not contain Username.";
- }
-
- grouping user-profile {
- list user {
- key "name";
- description
- "The list of local users configured on this device.";
- leaf name {
- type username-type;
- description
- "The user name string identifying this entry.";
- }
- leaf password {
- type password-type;
- description
- "The password for this entry.";
- }
- leaf group {
- type enumeration {
- enum "sudo";
- }
- description
- "The group to which the user is associated to.";
- }
- }
- }
-
- rpc chg-password {
- input {
- leaf currentPassword {
- type password-type;
- mandatory true;
- description
- "provide the current password";
- }
- leaf newPassword {
- type password-type;
- mandatory true;
- description
- "provide a new password";
- }
- leaf newPasswordConfirm {
- type password-type;
- mandatory true;
- description
- "re-enter the new password ";
- }
- }
- output {
- leaf status {
- type enumeration {
- enum "Successful" {
- value 1;
- }
- enum "Failed" {
- value 2;
- }
- }
- mandatory true;
- description
- "Successful or Failed";
- }
- leaf status-message {
- type string;
- description
- "Gives a more detailed reason for success / failure";
- }
- }
- }
-}