From: demx8as6 Date: Wed, 11 Mar 2020 11:35:02 +0000 (+0100) Subject: Inital yang modules for O-RAN-SC X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?p=scp%2Foam%2Fmodeling.git;a=commitdiff_plain;h=7f8525f641696bdefea121b48a0318a59fab9c50 Inital yang modules for O-RAN-SC Several common and component specific yang modules created. The sysmbolic links in each component specific folder indicate a dependency to a common yang modules. The template folder could be used to create new specific yang modules for new components/functions. Issue-ID: OAM-58 Change-Id: I01f278e25f6dc1e2e20fe6d5923ceca32b640c3f Signed-off-by: demx8as6 --- diff --git a/data-model/draft/README.md b/data-model/draft/README.md deleted file mode 100644 index ef4bf9a..0000000 --- a/data-model/draft/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# Data models under discussion and development - -A directory to share ideas for data model development and to experiment with -the new model artifacts. - -Please use pyang to validate the proposed yang modules and to generate -the yang tree. - -``` -pyang -f tree -o all-in-one.tree *.yang -``` - -Note: The yang module "o-ran-sc-TEMPLATE-v1.yang" should be used as templated -for project specific configuration management. \ No newline at end of file diff --git a/data-model/draft/iana-hardware@2018-03-13.yang b/data-model/draft/iana-hardware@2018-03-13.yang deleted file mode 100644 index 5cd5264..0000000 --- a/data-model/draft/iana-hardware@2018-03-13.yang +++ /dev/null @@ -1,189 +0,0 @@ -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."; - } -} diff --git a/data-model/draft/ietf-hardware@2018-03-13.yang b/data-model/draft/ietf-hardware@2018-03-13.yang deleted file mode 100644 index 4f984b6..0000000 --- a/data-model/draft/ietf-hardware@2018-03-13.yang +++ /dev/null @@ -1,1194 +0,0 @@ -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: - WG List: - - Editor: Andy Bierman - - - Editor: Martin Bjorklund - - - Editor: Jie Dong - - - Editor: Dan Romascanu - "; - - 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"; - } - -} diff --git a/data-model/draft/ietf-inet-types@2013-07-15.yang b/data-model/draft/ietf-inet-types@2013-07-15.yang deleted file mode 100644 index fa57f75..0000000 --- a/data-model/draft/ietf-inet-types@2013-07-15.yang +++ /dev/null @@ -1,458 +0,0 @@ -module ietf-inet-types { - - namespace "urn:ietf:params:xml:ns:yang:ietf-inet-types"; - prefix "inet"; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - - Editor: Juergen Schoenwaelder - "; - - description - "This module contains a collection of generally useful derived - YANG data types for Internet addresses and related things. - - Copyright (c) 2013 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). - - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; - - revision 2013-07-15 { - description - "This revision adds the following new data types: - - ip-address-no-zone - - ipv4-address-no-zone - - ipv6-address-no-zone"; - reference - "RFC 6991: Common YANG Data Types"; - } - - revision 2010-09-24 { - description - "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - } - - /*** collection of types related to protocol fields ***/ - - typedef ip-version { - type enumeration { - enum unknown { - value "0"; - description - "An unknown or unspecified version of the Internet - protocol."; - } - enum ipv4 { - value "1"; - description - "The IPv4 protocol as defined in RFC 791."; - } - enum ipv6 { - value "2"; - description - "The IPv6 protocol as defined in RFC 2460."; - } - } - description - "This value represents the version of the IP protocol. - - In the value set and its semantics, this type is equivalent - to the InetVersion textual convention of the SMIv2."; - reference - "RFC 791: Internet Protocol - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification - RFC 4001: Textual Conventions for Internet Network Addresses"; - } - - typedef dscp { - type uint8 { - range "0..63"; - } - description - "The dscp type represents a Differentiated Services Code Point - that may be used for marking packets in a traffic stream. - In the value set and its semantics, this type is equivalent - to the Dscp textual convention of the SMIv2."; - reference - "RFC 3289: Management Information Base for the Differentiated - Services Architecture - RFC 2474: Definition of the Differentiated Services Field - (DS Field) in the IPv4 and IPv6 Headers - RFC 2780: IANA Allocation Guidelines For Values In - the Internet Protocol and Related Headers"; - } - - typedef ipv6-flow-label { - type uint32 { - range "0..1048575"; - } - description - "The ipv6-flow-label type represents the flow identifier or Flow - Label in an IPv6 packet header that may be used to - discriminate traffic flows. - - In the value set and its semantics, this type is equivalent - to the IPv6FlowLabel textual convention of the SMIv2."; - reference - "RFC 3595: Textual Conventions for IPv6 Flow Label - RFC 2460: Internet Protocol, Version 6 (IPv6) Specification"; - } - - typedef port-number { - type uint16 { - range "0..65535"; - } - description - "The port-number type represents a 16-bit port number of an - Internet transport-layer protocol such as UDP, TCP, DCCP, or - SCTP. Port numbers are assigned by IANA. A current list of - all assignments is available from . - - Note that the port number value zero is reserved by IANA. In - situations where the value zero does not make sense, it can - be excluded by subtyping the port-number type. - In the value set and its semantics, this type is equivalent - to the InetPortNumber textual convention of the SMIv2."; - reference - "RFC 768: User Datagram Protocol - RFC 793: Transmission Control Protocol - RFC 4960: Stream Control Transmission Protocol - RFC 4340: Datagram Congestion Control Protocol (DCCP) - RFC 4001: Textual Conventions for Internet Network Addresses"; - } - - /*** collection of types related to autonomous systems ***/ - - typedef as-number { - type uint32; - description - "The as-number type represents autonomous system numbers - which identify an Autonomous System (AS). An AS is a set - of routers under a single technical administration, using - an interior gateway protocol and common metrics to route - packets within the AS, and using an exterior gateway - protocol to route packets to other ASes. IANA maintains - the AS number space and has delegated large parts to the - regional registries. - - Autonomous system numbers were originally limited to 16 - bits. BGP extensions have enlarged the autonomous system - number space to 32 bits. This type therefore uses an uint32 - base type without a range restriction in order to support - a larger autonomous system number space. - - In the value set and its semantics, this type is equivalent - to the InetAutonomousSystemNumber textual convention of - the SMIv2."; - reference - "RFC 1930: Guidelines for creation, selection, and registration - of an Autonomous System (AS) - RFC 4271: A Border Gateway Protocol 4 (BGP-4) - RFC 4001: Textual Conventions for Internet Network Addresses - RFC 6793: BGP Support for Four-Octet Autonomous System (AS) - Number Space"; - } - - /*** collection of types related to IP addresses and hostnames ***/ - - typedef ip-address { - type union { - type inet:ipv4-address; - type inet:ipv6-address; - } - description - "The ip-address type represents an IP address and is IP - version neutral. The format of the textual representation - implies the IP version. This type supports scoped addresses - by allowing zone identifiers in the address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - } - - typedef ipv4-address { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '(%[\p{N}\p{L}]+)?'; - } - description - "The ipv4-address type represents an IPv4 address in - dotted-quad notation. The IPv4 address may include a zone - index, separated by a % sign. - - The zone index is used to disambiguate identical address - values. For link-local addresses, the zone index will - typically be the interface index number or the name of an - interface. If the zone index is not present, the default - zone of the device will be used. - - The canonical format for the zone index is the numerical - format"; - } - - typedef ipv6-address { - type string { - pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(%[\p{N}\p{L}]+)?'; - pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' - + '(%.+)?'; - } - description - "The ipv6-address type represents an IPv6 address in full, - mixed, shortened, and shortened-mixed notation. The IPv6 - address may include a zone index, separated by a % sign. - - The zone index is used to disambiguate identical address - values. For link-local addresses, the zone index will - typically be the interface index number or the name of an - interface. If the zone index is not present, the default - zone of the device will be used. - - The canonical format of IPv6 addresses uses the textual - representation defined in Section 4 of RFC 5952. The - canonical format for the zone index is the numerical - format as described in Section 11.2 of RFC 4007."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - typedef ip-address-no-zone { - type union { - type inet:ipv4-address-no-zone; - type inet:ipv6-address-no-zone; - } - description - "The ip-address-no-zone type represents an IP address and is - IP version neutral. The format of the textual representation - implies the IP version. This type does not support scoped - addresses since it does not allow zone identifiers in the - address format."; - reference - "RFC 4007: IPv6 Scoped Address Architecture"; - } - - typedef ipv4-address-no-zone { - type inet:ipv4-address { - pattern '[0-9\.]*'; - } - description - "An IPv4 address without a zone index. This type, derived from - ipv4-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - } - - typedef ipv6-address-no-zone { - type inet:ipv6-address { - pattern '[0-9a-fA-F:\.]*'; - } - description - "An IPv6 address without a zone index. This type, derived from - ipv6-address, may be used in situations where the zone is - known from the context and hence no zone index is needed."; - reference - "RFC 4291: IP Version 6 Addressing Architecture - RFC 4007: IPv6 Scoped Address Architecture - RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - typedef ip-prefix { - type union { - type inet:ipv4-prefix; - type inet:ipv6-prefix; - } - description - "The ip-prefix type represents an IP prefix and is IP - version neutral. The format of the textual representations - implies the IP version."; - } - - typedef ipv4-prefix { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])' - + '/(([0-9])|([1-2][0-9])|(3[0-2]))'; - } - description - "The ipv4-prefix type represents an IPv4 address prefix. - The prefix length is given by the number following the - slash character and must be less than or equal to 32. - - A prefix length value of n corresponds to an IP address - mask that has n contiguous 1-bits from the most - significant bit (MSB) and all other bits set to 0. - - The canonical format of an IPv4 prefix has all bits of - the IPv4 address set to zero that are not part of the - IPv4 prefix."; - } - - typedef ipv6-prefix { - type string { - pattern '((:|[0-9a-fA-F]{0,4}):)([0-9a-fA-F]{0,4}:){0,5}' - + '((([0-9a-fA-F]{0,4}:)?(:|[0-9a-fA-F]{0,4}))|' - + '(((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}' - + '(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])))' - + '(/(([0-9])|([0-9]{2})|(1[0-1][0-9])|(12[0-8])))'; - pattern '(([^:]+:){6}(([^:]+:[^:]+)|(.*\..*)))|' - + '((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)' - + '(/.+)'; - } - - description - "The ipv6-prefix type represents an IPv6 address prefix. - The prefix length is given by the number following the - slash character and must be less than or equal to 128. - - A prefix length value of n corresponds to an IP address - mask that has n contiguous 1-bits from the most - significant bit (MSB) and all other bits set to 0. - - The IPv6 address should have all bits that do not belong - to the prefix set to zero. - - The canonical format of an IPv6 prefix has all bits of - the IPv6 address set to zero that are not part of the - IPv6 prefix. Furthermore, the IPv6 address is represented - as defined in Section 4 of RFC 5952."; - reference - "RFC 5952: A Recommendation for IPv6 Address Text - Representation"; - } - - /*** collection of domain name and URI types ***/ - - typedef domain-name { - type string { - length "1..253"; - pattern - '((([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.)*' - + '([a-zA-Z0-9_]([a-zA-Z0-9\-_]){0,61})?[a-zA-Z0-9]\.?)' - + '|\.'; - } - description - "The domain-name type represents a DNS domain name. The - name SHOULD be fully qualified whenever possible. - - Internet domain names are only loosely specified. Section - 3.5 of RFC 1034 recommends a syntax (modified in Section - 2.1 of RFC 1123). The pattern above is intended to allow - for current practice in domain name use, and some possible - future expansion. It is designed to hold various types of - domain names, including names used for A or AAAA records - (host names) and other records, such as SRV records. Note - that Internet host names have a stricter syntax (described - in RFC 952) than the DNS recommendations in RFCs 1034 and - 1123, and that systems that want to store host names in - schema nodes using the domain-name type are recommended to - adhere to this stricter standard to ensure interoperability. - - The encoding of DNS names in the DNS protocol is limited - to 255 characters. Since the encoding consists of labels - prefixed by a length bytes and there is a trailing NULL - byte, only 253 characters can appear in the textual dotted - notation. - - The description clause of schema nodes using the domain-name - type MUST describe when and how these names are resolved to - IP addresses. Note that the resolution of a domain-name value - may require to query multiple DNS records (e.g., A for IPv4 - and AAAA for IPv6). The order of the resolution process and - which DNS record takes precedence can either be defined - explicitly or may depend on the configuration of the - resolver. - - Domain-name values use the US-ASCII encoding. Their canonical - format uses lowercase US-ASCII characters. Internationalized - domain names MUST be A-labels as per RFC 5890."; - reference - "RFC 952: DoD Internet Host Table Specification - RFC 1034: Domain Names - Concepts and Facilities - RFC 1123: Requirements for Internet Hosts -- Application - and Support - RFC 2782: A DNS RR for specifying the location of services - (DNS SRV) - RFC 5890: Internationalized Domain Names in Applications - (IDNA): Definitions and Document Framework"; - } - - typedef host { - type union { - type inet:ip-address; - type inet:domain-name; - } - description - "The host type represents either an IP address or a DNS - domain name."; - } - - typedef uri { - type string; - description - "The uri type represents a Uniform Resource Identifier - (URI) as defined by STD 66. - - Objects using the uri type MUST be in US-ASCII encoding, - and MUST be normalized as described by RFC 3986 Sections - 6.2.1, 6.2.2.1, and 6.2.2.2. All unnecessary - percent-encoding is removed, and all case-insensitive - characters are set to lowercase except for hexadecimal - digits, which are normalized to uppercase as described in - Section 6.2.2.1. - - The purpose of this normalization is to help provide - unique URIs. Note that this normalization is not - sufficient to provide uniqueness. Two URIs that are - textually distinct after this normalization may still be - equivalent. - - Objects using the uri type may restrict the schemes that - they permit. For example, 'data:' and 'urn:' schemes - might not be appropriate. - - A zero-length URI is not a valid URI. This can be used to - express 'URI absent' where required. - - In the value set and its semantics, this type is equivalent - to the Uri SMIv2 textual convention defined in RFC 5017."; - reference - "RFC 3986: Uniform Resource Identifier (URI): Generic Syntax - RFC 3305: Report from the Joint W3C/IETF URI Planning Interest - Group: Uniform Resource Identifiers (URIs), URLs, - and Uniform Resource Names (URNs): Clarifications - and Recommendations - RFC 5017: MIB Textual Conventions for Uniform Resource - Identifiers (URIs)"; - } - -} diff --git a/data-model/draft/ietf-interfaces@2018-02-20.yang b/data-model/draft/ietf-interfaces@2018-02-20.yang deleted file mode 100644 index f66c205..0000000 --- a/data-model/draft/ietf-interfaces@2018-02-20.yang +++ /dev/null @@ -1,1123 +0,0 @@ -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: - WG List: - - Editor: Martin Bjorklund - "; - - 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"; - } - } - } - } -} diff --git a/data-model/draft/ietf-yang-types@2013-07-15.yang b/data-model/draft/ietf-yang-types@2013-07-15.yang deleted file mode 100644 index ee58fa3..0000000 --- a/data-model/draft/ietf-yang-types@2013-07-15.yang +++ /dev/null @@ -1,474 +0,0 @@ -module ietf-yang-types { - - namespace "urn:ietf:params:xml:ns:yang:ietf-yang-types"; - prefix "yang"; - - organization - "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; - - contact - "WG Web: - WG List: - - WG Chair: David Kessens - - - WG Chair: Juergen Schoenwaelder - - - Editor: Juergen Schoenwaelder - "; - - description - "This module contains a collection of generally useful derived - YANG data types. - - Copyright (c) 2013 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). - - This version of this YANG module is part of RFC 6991; see - the RFC itself for full legal notices."; - - revision 2013-07-15 { - description - "This revision adds the following new data types: - - yang-identifier - - hex-string - - uuid - - dotted-quad"; - reference - "RFC 6991: Common YANG Data Types"; - } - - revision 2010-09-24 { - description - "Initial revision."; - reference - "RFC 6021: Common YANG Data Types"; - } - - /*** collection of counter and gauge types ***/ - - typedef counter32 { - type uint32; - description - "The counter32 type represents a non-negative integer - that monotonically increases until it reaches a - maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. - - Counters have no defined 'initial' value, and thus, a - single value of a counter has (in general) no information - content. Discontinuities in the monotonically increasing - value normally occur at re-initialization of the - management system, and at other times as specified in the - description of a schema node using this type. If such - other times can occur, for example, the creation of - a schema node of type counter32 at times other than - re-initialization, then a corresponding schema node - should be defined, with an appropriate type, to indicate - the last discontinuity. - - The counter32 type should not be used for configuration - schema nodes. A default statement SHOULD NOT be used in - combination with the type counter32. - - In the value set and its semantics, this type is equivalent - to the Counter32 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef zero-based-counter32 { - type yang:counter32; - default "0"; - description - "The zero-based-counter32 type represents a counter32 - that has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^32-1 (4294967295 decimal), when it - wraps around and starts increasing again from zero. - - Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. - - In the value set and its semantics, this type is equivalent - to the ZeroBasedCounter32 textual convention of the SMIv2."; - reference - "RFC 4502: Remote Network Monitoring Management Information - Base Version 2"; - } - - typedef counter64 { - type uint64; - description - "The counter64 type represents a non-negative integer - that monotonically increases until it reaches a - maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. - - Counters have no defined 'initial' value, and thus, a - single value of a counter has (in general) no information - content. Discontinuities in the monotonically increasing - value normally occur at re-initialization of the - management system, and at other times as specified in the - description of a schema node using this type. If such - other times can occur, for example, the creation of - a schema node of type counter64 at times other than - re-initialization, then a corresponding schema node - should be defined, with an appropriate type, to indicate - the last discontinuity. - - The counter64 type should not be used for configuration - schema nodes. A default statement SHOULD NOT be used in - combination with the type counter64. - - In the value set and its semantics, this type is equivalent - to the Counter64 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef zero-based-counter64 { - type yang:counter64; - default "0"; - description - "The zero-based-counter64 type represents a counter64 that - has the defined 'initial' value zero. - - A schema node of this type will be set to zero (0) on creation - and will thereafter increase monotonically until it reaches - a maximum value of 2^64-1 (18446744073709551615 decimal), - when it wraps around and starts increasing again from zero. - - Provided that an application discovers a new schema node - of this type within the minimum time to wrap, it can use the - 'initial' value as a delta. It is important for a management - station to be aware of this minimum time and the actual time - between polls, and to discard data if the actual time is too - long or there is no defined minimum time. - - In the value set and its semantics, this type is equivalent - to the ZeroBasedCounter64 textual convention of the SMIv2."; - reference - "RFC 2856: Textual Conventions for Additional High Capacity - Data Types"; - } - - typedef gauge32 { - type uint32; - description - "The gauge32 type represents a non-negative integer, which - may increase or decrease, but shall never exceed a maximum - value, nor fall below a minimum value. The maximum value - cannot be greater than 2^32-1 (4294967295 decimal), and - the minimum value cannot be smaller than 0. The value of - a gauge32 has its maximum value whenever the information - being modeled is greater than or equal to its maximum - value, and has its minimum value whenever the information - being modeled is smaller than or equal to its minimum value. - If the information being modeled subsequently decreases - below (increases above) the maximum (minimum) value, the - gauge32 also decreases (increases). - - In the value set and its semantics, this type is equivalent - to the Gauge32 type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef gauge64 { - type uint64; - description - "The gauge64 type represents a non-negative integer, which - may increase or decrease, but shall never exceed a maximum - value, nor fall below a minimum value. The maximum value - cannot be greater than 2^64-1 (18446744073709551615), and - the minimum value cannot be smaller than 0. The value of - a gauge64 has its maximum value whenever the information - being modeled is greater than or equal to its maximum - value, and has its minimum value whenever the information - being modeled is smaller than or equal to its minimum value. - If the information being modeled subsequently decreases - below (increases above) the maximum (minimum) value, the - gauge64 also decreases (increases). - - In the value set and its semantics, this type is equivalent - to the CounterBasedGauge64 SMIv2 textual convention defined - in RFC 2856"; - reference - "RFC 2856: Textual Conventions for Additional High Capacity - Data Types"; - } - - /*** collection of identifier-related types ***/ - - typedef object-identifier { - type string { - pattern '(([0-1](\.[1-3]?[0-9]))|(2\.(0|([1-9]\d*))))' - + '(\.(0|([1-9]\d*)))*'; - } - description - "The object-identifier type represents administratively - assigned names in a registration-hierarchical-name tree. - - Values of this type are denoted as a sequence of numerical - non-negative sub-identifier values. Each sub-identifier - value MUST NOT exceed 2^32-1 (4294967295). Sub-identifiers - are separated by single dots and without any intermediate - whitespace. - - The ASN.1 standard restricts the value space of the first - sub-identifier to 0, 1, or 2. Furthermore, the value space - of the second sub-identifier is restricted to the range - 0 to 39 if the first sub-identifier is 0 or 1. Finally, - the ASN.1 standard requires that an object identifier - has always at least two sub-identifiers. The pattern - captures these restrictions. - - Although the number of sub-identifiers is not limited, - module designers should realize that there may be - implementations that stick with the SMIv2 limit of 128 - sub-identifiers. - - This type is a superset of the SMIv2 OBJECT IDENTIFIER type - since it is not restricted to 128 sub-identifiers. Hence, - this type SHOULD NOT be used to represent the SMIv2 OBJECT - IDENTIFIER type; the object-identifier-128 type SHOULD be - used instead."; - reference - "ISO9834-1: Information technology -- Open Systems - Interconnection -- Procedures for the operation of OSI - Registration Authorities: General procedures and top - arcs of the ASN.1 Object Identifier tree"; - } - - typedef object-identifier-128 { - type object-identifier { - pattern '\d*(\.\d*){1,127}'; - } - description - "This type represents object-identifiers restricted to 128 - sub-identifiers. - - In the value set and its semantics, this type is equivalent - to the OBJECT IDENTIFIER type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef yang-identifier { - type string { - length "1..max"; - pattern '[a-zA-Z_][a-zA-Z0-9\-_.]*'; - pattern '.|..|[^xX].*|.[^mM].*|..[^lL].*'; - } - description - "A YANG identifier string as defined by the 'identifier' - rule in Section 12 of RFC 6020. An identifier must - start with an alphabetic character or an underscore - followed by an arbitrary sequence of alphabetic or - numeric characters, underscores, hyphens, or dots. - - A YANG identifier MUST NOT start with any possible - combination of the lowercase or uppercase character - sequence 'xml'."; - reference - "RFC 6020: YANG - A Data Modeling Language for the Network - Configuration Protocol (NETCONF)"; - } - - /*** collection of types related to date and time***/ - - typedef date-and-time { - type string { - pattern '\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?' - + '(Z|[\+\-]\d{2}:\d{2})'; - } - description - "The date-and-time type is a profile of the ISO 8601 - standard for representation of dates and times using the - Gregorian calendar. The profile is defined by the - date-time production in Section 5.6 of RFC 3339. - - The date-and-time type is compatible with the dateTime XML - schema type with the following notable exceptions: - - (a) The date-and-time type does not allow negative years. - - (b) The date-and-time time-offset -00:00 indicates an unknown - time zone (see RFC 3339) while -00:00 and +00:00 and Z - all represent the same time zone in dateTime. - - (c) The canonical format (see below) of data-and-time values - differs from the canonical format used by the dateTime XML - schema type, which requires all times to be in UTC using - the time-offset 'Z'. - - This type is not equivalent to the DateAndTime textual - convention of the SMIv2 since RFC 3339 uses a different - separator between full-date and full-time and provides - higher resolution of time-secfrac. - - The canonical format for date-and-time values with a known time - zone uses a numeric time zone offset that is calculated using - the device's configured known offset to UTC time. A change of - the device's offset to UTC time will cause date-and-time values - to change accordingly. Such changes might happen periodically - in case a server follows automatically daylight saving time - (DST) time zone offset changes. The canonical format for - date-and-time values with an unknown time zone (usually - referring to the notion of local time) uses the time-offset - -00:00."; - reference - "RFC 3339: Date and Time on the Internet: Timestamps - RFC 2579: Textual Conventions for SMIv2 - XSD-TYPES: XML Schema Part 2: Datatypes Second Edition"; - } - - typedef timeticks { - type uint32; - description - "The timeticks type represents a non-negative integer that - represents the time, modulo 2^32 (4294967296 decimal), in - hundredths of a second between two epochs. When a schema - node is defined that uses this type, the description of - the schema node identifies both of the reference epochs. - - In the value set and its semantics, this type is equivalent - to the TimeTicks type of the SMIv2."; - reference - "RFC 2578: Structure of Management Information Version 2 - (SMIv2)"; - } - - typedef timestamp { - type yang:timeticks; - description - "The timestamp type represents the value of an associated - timeticks schema node at which a specific occurrence - happened. The specific occurrence must be defined in the - description of any schema node defined using this type. When - the specific occurrence occurred prior to the last time the - associated timeticks attribute was zero, then the timestamp - value is zero. Note that this requires all timestamp values - to be reset to zero when the value of the associated timeticks - attribute reaches 497+ days and wraps around to zero. - - The associated timeticks schema node must be specified - in the description of any schema node using this type. - - In the value set and its semantics, this type is equivalent - to the TimeStamp textual convention of the SMIv2."; - reference - "RFC 2579: Textual Conventions for SMIv2"; - } - - /*** collection of generic address types ***/ - - typedef phys-address { - type string { - pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; - } - - description - "Represents media- or physical-level addresses represented - as a sequence octets, each octet represented by two hexadecimal - numbers. Octets are separated by colons. The canonical - representation uses lowercase characters. - - In the value set and its semantics, this type is equivalent - to the PhysAddress textual convention of the SMIv2."; - reference - "RFC 2579: Textual Conventions for SMIv2"; - } - - typedef mac-address { - type string { - pattern '[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}'; - } - description - "The mac-address type represents an IEEE 802 MAC address. - The canonical representation uses lowercase characters. - - In the value set and its semantics, this type is equivalent - to the MacAddress textual convention of the SMIv2."; - reference - "IEEE 802: IEEE Standard for Local and Metropolitan Area - Networks: Overview and Architecture - RFC 2579: Textual Conventions for SMIv2"; - } - - /*** collection of XML-specific types ***/ - - typedef xpath1.0 { - type string; - description - "This type represents an XPATH 1.0 expression. - - When a schema node is defined that uses this type, the - description of the schema node MUST specify the XPath - context in which the XPath expression is evaluated."; - reference - "XPATH: XML Path Language (XPath) Version 1.0"; - } - - /*** collection of string types ***/ - - typedef hex-string { - type string { - pattern '([0-9a-fA-F]{2}(:[0-9a-fA-F]{2})*)?'; - } - description - "A hexadecimal string with octets represented as hex digits - separated by colons. The canonical representation uses - lowercase characters."; - } - - typedef uuid { - type string { - pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' - + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; - } - description - "A Universally Unique IDentifier in the string representation - defined in RFC 4122. The canonical representation uses - lowercase characters. - - The following is an example of a UUID in string representation: - f81d4fae-7dec-11d0-a765-00a0c91e6bf6 - "; - reference - "RFC 4122: A Universally Unique IDentifier (UUID) URN - Namespace"; - } - - typedef dotted-quad { - type string { - pattern - '(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}' - + '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; - } - description - "An unsigned 32-bit number expressed in the dotted-quad - notation, i.e., four octets written as decimal numbers - and separated with the '.' (full stop) character."; - } -} diff --git a/data-model/released/README.md b/data-model/released/README.md deleted file mode 100644 index 9d066ce..0000000 --- a/data-model/released/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# Released data models - -A directory containing released data modules of O-RAN Alliance and O-RAN Software Community. diff --git a/data-model/yang/README.md b/data-model/yang/README.md new file mode 100644 index 0000000..29dbc94 --- /dev/null +++ b/data-model/yang/README.md @@ -0,0 +1,11 @@ +# YANG + +NetConf/YANG is defined by O-RAN Alliance Interface Spcification v2 as protocol +for Configuration Management for FCAPS functions (accept the A: Accounting) for +the disaggregated RAN. + +As some of the data models in working progress subfolders are used to +distinglish "working" and "published". The folder "sim" is used exclusively +by the +[O-RAN-SC SIM project](https://wiki.o-ran-sc.org/display/SIM/SIM?src=sidebar) +project. diff --git a/data-model/draft/ietf-alarms@2019-09-11.yang b/data-model/yang/published/ietf/ietf-alarms.yang similarity index 100% rename from data-model/draft/ietf-alarms@2019-09-11.yang rename to data-model/yang/published/ietf/ietf-alarms.yang diff --git a/data-model/yang/sim/README.md b/data-model/yang/sim/README.md new file mode 100644 index 0000000..03ecbd2 --- /dev/null +++ b/data-model/yang/sim/README.md @@ -0,0 +1,4 @@ +# sim + +The folder "sim" is used exclusively by the +[O-RAN-SC SIM project](https://wiki.o-ran-sc.org/display/SIM/SIM?src=sidebar). \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-alarms.yang new file mode 120000 index 0000000..fab3a21 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-alarms.yang @@ -0,0 +1 @@ +../template/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-hardware.yang new file mode 120000 index 0000000..d63ae98 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-hardware.yang @@ -0,0 +1 @@ +../template/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-interfaces.yang new file mode 120000 index 0000000..019946c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-interfaces.yang @@ -0,0 +1 @@ +../template/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-yang-types.yang new file mode 120000 index 0000000..5f30137 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/ietf-yang-types.yang @@ -0,0 +1 @@ +../template/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-alarms-v1.yang new file mode 120000 index 0000000..ffb1b64 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-common-alarms-v1.yang new file mode 120000 index 0000000..4378ece --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-common-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-hardware-v1.yang new file mode 120000 index 0000000..97c1467 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-hardware-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-hardware-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-interfaces-v1.yang new file mode 120000 index 0000000..d97789e --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-interfaces-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-interfaces-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-alarms-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-alarms-v1.yang new file mode 100644 index 0000000..a6089c2 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-alarms-v1.yang @@ -0,0 +1,72 @@ +module o-ran-sc-ric-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran:ric:alarms:1.0"; + prefix osc-ric-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module defines the alarm identities for the O-RAN-SC Near realtime RAN Intelligent Controller. + + Copyright 2019 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-03-08 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type used for all O-RAN-SC specific alarm types for + Managed Function Non-RT-RIC."; + } + + identity e2-connection-loss { + base alarm-type-id; + description + "Loss of E2 connection to E2 node. + Instructions: + Check if reconnect happened, e.g. using the health check in RIC-95."; + } + identity time-out { + base alarm-type-id; + description + "Internal routing table update distribution might be incomplete + due to time out. + Instructions: + Operator to check if there were any failures in any of the components + involved (xApp restarts, for example)if no such failures, operator + might have to update time out settings in the configuration to + adjust RIC system to scheduling latencies of the underlying cloud + platform."; + } + identity overload { + base alarm-type-id; + description + "RIC messages could not be send or received due to temporary overload. + Instructions: + Operator to check for any failures. If no failures, operator might + have to adjust buffer sizes and timeouts and/or scale out the system."; + } +} diff --git a/data-model/draft/o-ran-sc-ric-gnb-status-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-gnb-status-v1.yang old mode 100755 new mode 100644 similarity index 100% rename from data-model/draft/o-ran-sc-ric-gnb-status-v1.yang rename to data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-gnb-status-v1.yang diff --git a/data-model/draft/o-ran-sc-ric-ueec-config-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-ueec-config-v1.yang old mode 100755 new mode 100644 similarity index 100% rename from data-model/draft/o-ran-sc-ric-ueec-config-v1.yang rename to data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-ueec-config-v1.yang diff --git a/data-model/draft/o-ran-sc-ric-xapp-desc-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-xapp-desc-v1.yang old mode 100755 new mode 100644 similarity index 100% rename from data-model/draft/o-ran-sc-ric-xapp-desc-v1.yang rename to data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-ric-xapp-desc-v1.yang diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-root-v1.yang new file mode 120000 index 0000000..6557df7 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-root-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-root-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-types-v1.yang new file mode 120000 index 0000000..a07750c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/near-rt-ric/o-ran-sc-types-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-types-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-alarms.yang new file mode 120000 index 0000000..fab3a21 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-alarms.yang @@ -0,0 +1 @@ +../template/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-hardware.yang new file mode 120000 index 0000000..d63ae98 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-hardware.yang @@ -0,0 +1 @@ +../template/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-interfaces.yang new file mode 120000 index 0000000..019946c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-interfaces.yang @@ -0,0 +1 @@ +../template/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-yang-types.yang new file mode 120000 index 0000000..5f30137 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/ietf-yang-types.yang @@ -0,0 +1 @@ +../template/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-alarms-v1.yang new file mode 120000 index 0000000..ffb1b64 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-common-alarms-v1.yang new file mode 120000 index 0000000..4378ece --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-common-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-alarms-v1.yang new file mode 100644 index 0000000..e29ff2d --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-alarms-v1.yang @@ -0,0 +1,57 @@ +module o-ran-sc-cu-cp-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran-sc:cu:cp:alarms:1.0"; + prefix osc-cu-cp-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran-sc.org"; + description + "This module defines the alarm identities for the O-RAN-SC Central Unit + Control Plane. + + Copyright 2020 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-01-18 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type used for all O-RAN-SC specific alarm types for + Managed Function O-CU-CP."; + } + + identity huston-we-have-a-problem { + base alarm-type-id; + description + "A generic alarm which is under development and analysis, + must not happen in production environment. + Instructions: + Create an JIRA issue and provide the following intormation: + - SMO version, build number or git hash + - O-CU-CP version, build number or git hash + - A procedure to reproduce the alarm."; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-v1.yang new file mode 100644 index 0000000..27d9833 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-cu-cp-v1.yang @@ -0,0 +1,64 @@ +module o-ran-sc-cu-cp-v1 { + yang-version 1.1; + namespace "urn:o-ran:sc:centalized-unit:control-plane:1.0"; + prefix ocucp; + + import o-ran-sc-root-v1 { + prefix root; + } + import o-ran-sc-types-v1 { + prefix ot; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module contains the O-RAN Software Community CentralizedUnit + Control Plane specific O1 interface APIs. + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-02-20 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + // identity + + identity o-cu-cp { + base ot:control-function-type; + description + "TODO: Nice description"; + } + + // grouping + + grouping o-cu-cp-specific-grp { + description + "TODO: add your specific leafs, lists, containers here."; + } + + // Inherit from controlled-function + augment "/root:controlled-element/root:controlled-function" { + when "derived-from-or-self(./root:function-type, 'ocucp:o-cu-cp')"; + uses o-cu-cp-specific-grp; + description + "TODO: Nice description"; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-hardware-v1.yang new file mode 120000 index 0000000..97c1467 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-hardware-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-hardware-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-interfaces-v1.yang new file mode 120000 index 0000000..d97789e --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-interfaces-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-interfaces-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-root-v1.yang new file mode 120000 index 0000000..6557df7 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-root-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-root-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-types-v1.yang new file mode 120000 index 0000000..a07750c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-cp/o-ran-sc-types-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-types-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-alarms.yang new file mode 120000 index 0000000..fab3a21 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-alarms.yang @@ -0,0 +1 @@ +../template/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-hardware.yang new file mode 120000 index 0000000..d63ae98 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-hardware.yang @@ -0,0 +1 @@ +../template/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-interfaces.yang new file mode 120000 index 0000000..019946c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-interfaces.yang @@ -0,0 +1 @@ +../template/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-yang-types.yang new file mode 120000 index 0000000..5f30137 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/ietf-yang-types.yang @@ -0,0 +1 @@ +../template/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-alarms-v1.yang new file mode 120000 index 0000000..ffb1b64 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-common-alarms-v1.yang new file mode 120000 index 0000000..4378ece --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-common-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-alarms-v1.yang new file mode 100644 index 0000000..020103f --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-alarms-v1.yang @@ -0,0 +1,57 @@ +module o-ran-sc-cu-up-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran-sc:cu:up:alarms:1.0"; + prefix osc-cu-up-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran-sc.org"; + description + "This module defines the alarm identities for the O-RAN-SC Central Unit + User Plane. + + Copyright 2020 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-01-18 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type used for all O-RAN-SC specific alarm types for + Managed Function O-CU-UP."; + } + + identity huston-we-have-a-problem { + base alarm-type-id; + description + "A generic alarm which is under development and analysis, + must not happen in production environment. + Instructions: + Create an JIRA issue and provide the following intormation: + - SMO version, build number or git hash + - O-CU-UP version, build number or git hash + - A procedure to reproduce the alarm."; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-v1.yang new file mode 100644 index 0000000..9f6aee6 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-cu-up-v1.yang @@ -0,0 +1,64 @@ +module o-ran-sc-cu-up-v1 { + yang-version 1.1; + namespace "urn:o-ran:sc:centalized-unit:user-plane:1.0"; + prefix ocuup; + + import o-ran-sc-root-v1 { + prefix root; + } + import o-ran-sc-types-v1 { + prefix ot; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module contains the O-RAN Software Community CentralizedUnit + User Plane specific O1 interface APIs. + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-02-20 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + // identity + + identity o-cu-up { + base ot:control-function-type; + description + "TODO: Nice description"; + } + + // grouping + + grouping o-cu-up-specific-grp { + description + "TODO: add your specific leafs, lists, containers here."; + } + + // Inherit from controlled-function + augment "/root:controlled-element/root:controlled-function" { + when "derived-from-or-self(./root:function-type, 'ocuup:o-cu-up')"; + uses o-cu-up-specific-grp; + description + "TODO: Nice description"; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-hardware-v1.yang new file mode 120000 index 0000000..97c1467 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-hardware-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-hardware-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-interfaces-v1.yang new file mode 120000 index 0000000..d97789e --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-interfaces-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-interfaces-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-root-v1.yang new file mode 120000 index 0000000..6557df7 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-root-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-root-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-types-v1.yang new file mode 120000 index 0000000..a07750c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-cu-up/o-ran-sc-types-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-types-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-alarms.yang new file mode 120000 index 0000000..fab3a21 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-alarms.yang @@ -0,0 +1 @@ +../template/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-hardware.yang new file mode 120000 index 0000000..d63ae98 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-hardware.yang @@ -0,0 +1 @@ +../template/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-interfaces.yang new file mode 120000 index 0000000..019946c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-interfaces.yang @@ -0,0 +1 @@ +../template/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-yang-types.yang new file mode 120000 index 0000000..5f30137 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/ietf-yang-types.yang @@ -0,0 +1 @@ +../template/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-alarms-v1.yang new file mode 120000 index 0000000..ffb1b64 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-common-alarms-v1.yang new file mode 120000 index 0000000..4378ece --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-common-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-alarms-v1.yang new file mode 100644 index 0000000..e19c245 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-alarms-v1.yang @@ -0,0 +1,76 @@ +module o-ran-sc-du-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran-sc:du:alarms:1.0"; + prefix osc-du-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran-sc.org"; + description + "This module defines the alarm identities for the O-RAN-SC Distributed Unit. + + Copyright 2020 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-03-08 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type used for all O-RAN-SC specific alarm types for + Managed Function O-DU."; + } + + identity loss-of-timing-synchronization { + base alarm-type-id; + description + "O-DU loss of time synchronization. + Instructions: + 1) Verify the configuration of time synchronization on the O-DU. + 2) Verify the connectivity between the O-DU and the synchronization + source in terms of routing and firewall settings along the path. + 3) Check if QoS requirements between O-DU and synchronization source + are met."; + } + identity connection-loss-to-o-ru { + base alarm-type-id; + description + "O-DU loss of connection to O-RU. + Instructions: + 1) Verify the configuration on O-DU and on O-RU. + 2) Verify the connectivity between O-DU and O-RU in terms of + routing + and firewall settings along the path."; + } + identity o-du-low-configuration-loss-from-o-du-high { + base alarm-type-id; + description + "O-DU Low loss of configuration from O-DU High. + Instructions: + Create an JIRA issue and provide the following information: + - SMO version, build number or git hash + - O-DU version, build number or git hash + - A procedure to reproduce the alarm."; + } +} \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-v1.yang new file mode 100644 index 0000000..bbcab1f --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-du-v1.yang @@ -0,0 +1,64 @@ +module o-ran-sc-du-v1 { + yang-version 1.1; + namespace "urn:o-ran:sc:distributed-unit:1.0"; + prefix odu; + + import o-ran-sc-root-v1 { + prefix root; + } + import o-ran-sc-types-v1 { + prefix ot; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module contains the O-RAN Software Community DistributedUnit specific + O1 interface APIs. + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-02-20 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + // identity + + identity o-du { + base ot:control-function-type; + description + "TODO: Nice description"; + } + + // grouping + + grouping o-du-specific-grp { + description + "TODO: add your specific leafs, lists, containers here."; + } + + // Inherit from controlled-function + augment "/root:controlled-element/root:controlled-function" { + when "derived-from-or-self(./root:function-type, 'odu:o-du')"; + uses o-du-specific-grp; + description + "TODO: Nice description"; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-hardware-v1.yang new file mode 120000 index 0000000..97c1467 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-hardware-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-hardware-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-interfaces-v1.yang new file mode 120000 index 0000000..d97789e --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-interfaces-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-interfaces-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-root-v1.yang new file mode 120000 index 0000000..6557df7 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-root-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-root-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-types-v1.yang new file mode 120000 index 0000000..a07750c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-du/o-ran-sc-types-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-types-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-alarms.yang new file mode 120000 index 0000000..fab3a21 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-alarms.yang @@ -0,0 +1 @@ +../template/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-hardware.yang new file mode 120000 index 0000000..d63ae98 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-hardware.yang @@ -0,0 +1 @@ +../template/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-interfaces.yang new file mode 120000 index 0000000..019946c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-interfaces.yang @@ -0,0 +1 @@ +../template/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-yang-types.yang new file mode 120000 index 0000000..5f30137 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/ietf-yang-types.yang @@ -0,0 +1 @@ +../template/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-alarms-v1.yang new file mode 120000 index 0000000..ffb1b64 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-common-alarms-v1.yang new file mode 120000 index 0000000..4378ece --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-common-alarms-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-hardware-v1.yang new file mode 120000 index 0000000..97c1467 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-hardware-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-hardware-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-interfaces-v1.yang new file mode 120000 index 0000000..d97789e --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-interfaces-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-interfaces-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-root-v1.yang new file mode 120000 index 0000000..6557df7 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-root-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-root-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-alarms-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-alarms-v1.yang new file mode 100644 index 0000000..c52414d --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-alarms-v1.yang @@ -0,0 +1,56 @@ +module o-ran-sc-ru-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran-sc:ru:alarms:1.0"; + prefix osc-ru-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran-sc.org"; + description + "This module defines the alarm identities for the O-RAN-SC Components. + + Copyright 2020 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-01-18 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type used for all O-RAN-SC specific alarm types for + Managed Function O-RU."; + } + + identity huston-we-have-a-problem { + base alarm-type-id; + description + "A generic alarm which is under development and analysis, + must not happen in production environment. + Instructions: + Create an JIRA issue and provide the following intormation: + - SMO version, build number or git hash + - O-RU version, build number or git hash + - A procedure to reproduce the alarm."; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-v1.yang new file mode 100644 index 0000000..1566ec9 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-ru-v1.yang @@ -0,0 +1,64 @@ +module o-ran-sc-ru-v1 { + yang-version 1.1; + namespace "urn:o-ran:sc:radio-unit:1.0"; + prefix oru; + + import o-ran-sc-root-v1 { + prefix root; + } + import o-ran-sc-types-v1 { + prefix ot; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran.org"; + description + "This module contains the O-RAN Software Community RadioUnit specific + O1 interface APIs. + + Copyright 2020 the O-RAN Alliance. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-02-20 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + // identity + + identity o-ru { + base ot:control-function-type; + description + "TODO: Nice description"; + } + + // grouping + + grouping o-ru-specific-grp { + description + "TODO: add your specific leafs, lists, containers here."; + } + + // Inherit from controlled-function + augment "/root:controlled-element/root:controlled-function" { + when "derived-from-or-self(./root:function-type, 'oru:o-ru')"; + uses o-ru-specific-grp; + description + "TODO: Nice description"; + } +} diff --git a/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-types-v1.yang new file mode 120000 index 0000000..a07750c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/o-ran-ru/o-ran-sc-types-v1.yang @@ -0,0 +1 @@ +../template/o-ran-sc-types-v1.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/template/README.md b/data-model/yang/working/o-ran-sc/template/README.md new file mode 100644 index 0000000..f61d925 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/README.md @@ -0,0 +1,16 @@ +# Template + +This folder contains a template yang modules with dependencies to published +YANG modules and O-RAN-SC common yang modules. + +Please rename "TEMPLATE" by your O-RAN component. + +Please use the option "-L, --dereference" of the bash "cp" command to follow +the symbolic link if needed. + +To validate our yang modules pyang is recommended, following the +O-RAN Alliance data modelling guidlines. + +``` +pyang --lint o-ran-sc-*.yang +``` \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/template/ietf-alarms.yang b/data-model/yang/working/o-ran-sc/template/ietf-alarms.yang new file mode 120000 index 0000000..24bb77a --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/ietf-alarms.yang @@ -0,0 +1 @@ +../../../published/ietf/ietf-alarms.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/template/ietf-hardware.yang b/data-model/yang/working/o-ran-sc/template/ietf-hardware.yang new file mode 120000 index 0000000..ff01a3c --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/ietf-hardware.yang @@ -0,0 +1 @@ +../../../published/ietf/ietf-hardware.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/template/ietf-interfaces.yang b/data-model/yang/working/o-ran-sc/template/ietf-interfaces.yang new file mode 120000 index 0000000..a2954d0 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/ietf-interfaces.yang @@ -0,0 +1 @@ +../../../published/ietf/ietf-interfaces.yang \ No newline at end of file diff --git a/data-model/yang/working/o-ran-sc/template/ietf-yang-types.yang b/data-model/yang/working/o-ran-sc/template/ietf-yang-types.yang new file mode 120000 index 0000000..2353b09 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/ietf-yang-types.yang @@ -0,0 +1 @@ +../../../published/ietf/ietf-yang-types.yang \ No newline at end of file diff --git a/data-model/draft/o-ran-sc-TEMPLATE-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-TEMPLATE-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-TEMPLATE-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-TEMPLATE-v1.yang diff --git a/data-model/draft/o-ran-sc-alarms-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-alarms-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-alarms-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-alarms-v1.yang diff --git a/data-model/yang/working/o-ran-sc/template/o-ran-sc-common-alarms-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-common-alarms-v1.yang new file mode 100644 index 0000000..930bba3 --- /dev/null +++ b/data-model/yang/working/o-ran-sc/template/o-ran-sc-common-alarms-v1.yang @@ -0,0 +1,56 @@ +module o-ran-sc-common-alarms-v1 { + yang-version 1.1; + namespace "urn:o-ran-sc:alarms:1.0"; + prefix osc-al; + + import ietf-alarms { + prefix al; + } + + organization + "O-RAN Software Community"; + contact + "www.o-ran-sc.org"; + description + "This module defines the alarm identities for the O-RAN-SC Components. + + Copyright 2020 the O-RAN Software Community. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-01-18 { + description + "initial revision"; + reference + "O-RAN-OAM-Interface-Specification (O1)"; + } + + identity alarm-type-id { + base al:alarm-type-id; + description + "An abstract alarm type use for all O-RAN-SC alarm types which are + common across the O-RAN managed functions."; + } + + identity smo-o1-ves-collector-not-reachable { + base alarm-type-id; + description + "The configured VES end-point for asynchron messages is not reachable. + Instructions: + 1) Verify the VES configuration on the O-RAN component. + 2) Verify the connectivity between the O-RAN component and the + SMO in terms of routing and firewall settings along the path. + 3) Check the credentials of the O-RAN component (user, password, + certificate). Did changes happen on SMO level recently?"; + } +} diff --git a/data-model/draft/o-ran-sc-hardware-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-hardware-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-hardware-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-hardware-v1.yang diff --git a/data-model/draft/o-ran-sc-interfaces-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-interfaces-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-interfaces-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-interfaces-v1.yang diff --git a/data-model/draft/o-ran-sc-root-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-root-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-root-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-root-v1.yang diff --git a/data-model/draft/o-ran-sc-types-v1.yang b/data-model/yang/working/o-ran-sc/template/o-ran-sc-types-v1.yang similarity index 100% rename from data-model/draft/o-ran-sc-types-v1.yang rename to data-model/yang/working/o-ran-sc/template/o-ran-sc-types-v1.yang