module ietf-microwave-radio-link { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-microwave-radio-link"; prefix mrl; import ietf-yang-types { prefix yang; } import ietf-interfaces { prefix if; } import ietf-interface-protection { prefix ifprot; } import iana-if-type { prefix ianaift; } organization "Internet Engineering Task Force (IETF) CCAMP WG"; contact "WG List: ID-draft authors: Jonas Ahlberg (jonas.ahlberg@ericsson.com); Min Ye (amy.yemin@huawei.com); Xi Li (Xi.Li@neclab.eu); Koji Kawada (k-kawada@ah.jp.nec.com) Carlos J. Bernardos (cjbc@it.uc3m.es) Daniela Spreafico (daniela.spreafico@nokia.com) Marko Vaupotic (Marko.Vaupotic@aviatnet.com)"; description "This is a module for the entities in a generic microwave system."; revision 2017-10-23 { description "Break out protection functionality to a generic module and update to follow the new NMDA style."; reference ""; } revision 2017-06-21 { description "Updated draft revision with updates of some descriptions to increase clarity and some minor adjustments of the model."; reference ""; } revision 2016-12-22 { description "Draft revision covering a complete scope for configuration and state data for radio link interfaces."; reference ""; } revision 2016-10-29 { description "Draft revision."; reference ""; } /* * Features */ feature xpic { description "Indicates that the device supports XPIC."; reference "ETSI TR 102 311"; } feature mimo { description "Indicates that the device supports MIMO."; reference "ETSI TR 102 311"; } feature tdm { description "Indicates that the device supports TDM."; } /* * Interface identities */ identity radio-link-terminal { base ianaift:iana-interface-type; description "Interface identity for a radio link terminal."; } identity carrier-termination { base ianaift:iana-interface-type; description "Interface identity for a carrier termination."; } /* * Radio-link-terminal mode identities */ identity rlt-mode { description "A description of the mode in which the radio link terminal is configured. The format is X plus Y. X represent the number of bonded carrier terminations. Y represent the number of protecting carrier terminations."; } identity one-plus-zero { base rlt-mode; description "1 carrier termination only."; } identity one-plus-one { base rlt-mode; description "1 carrier termination and 1 protecting carrier termination."; } identity two-plus-zero { base rlt-mode; description "2 bonded carrier terminations."; } /* * Coding and modulation identities */ identity coding-modulation { description "The coding and modulation schemes."; } identity half-bpsk-strong { base coding-modulation; description "Half BPSK strong coding and modulation scheme."; } identity half-bpsk { base coding-modulation; description "Half BPSK coding and modulation scheme."; } identity half-bpsk-light { base coding-modulation; description "Half BPSK light coding and modulation scheme."; } identity bpsk-strong { base coding-modulation; description "BPSK strong coding and modulation scheme."; } identity bpsk { base coding-modulation; description "BPSK coding and modulation scheme."; } identity bpsk-light { base coding-modulation; description "BPSK light coding and modulation scheme."; } identity qpsk { base coding-modulation; description "QPSK coding and modulation scheme."; } identity qam-4-strong { base coding-modulation; description "4 QAM strong coding and modulation scheme."; } identity qam-4 { base coding-modulation; description "4 QAM coding and modulation scheme."; } identity qam-4-light { base coding-modulation; description "4 QAM light coding and modulation scheme."; } identity qam-16-strong { base coding-modulation; description "16 QAM strong coding and modulation scheme."; } identity qam-16 { base coding-modulation; description "16 QAM coding and modulation scheme."; } identity qam-16-light { base coding-modulation; description "16 QAM light coding and modulation scheme."; } identity qam-32-strong { base coding-modulation; description "32 QAM strong coding and modulation scheme."; } identity qam-32 { base coding-modulation; description "32 QAM coding and modulation scheme."; } identity qam-32-light { base coding-modulation; description "32 QAM light coding and modulation scheme."; } identity qam-64-strong { base coding-modulation; description "64 QAM strong coding and modulation scheme."; } identity qam-64 { base coding-modulation; description "64 QAM coding and modulation scheme."; } identity qam-64-light { base coding-modulation; description "64 QAM light coding and modulation scheme."; } identity qam-128-strong { base coding-modulation; description "128 QAM strong coding and modulation scheme."; } identity qam-128 { base coding-modulation; description "128 QAM coding and modulation scheme."; } identity qam-128-light { base coding-modulation; description "128 QAM light coding and modulation scheme."; } identity qam-256-strong { base coding-modulation; description "256 QAM strong coding and modulation scheme."; } identity qam-256 { base coding-modulation; description "256 QAM coding and modulation scheme."; } identity qam-256-light { base coding-modulation; description "256 QAM light coding and modulation scheme."; } identity qam-512-strong { base coding-modulation; description "512 QAM strong coding and modulation scheme."; } identity qam-512 { base coding-modulation; description "512 QAM coding and modulation scheme."; } identity qam-512-light { base coding-modulation; description "512 QAM light coding and modulation scheme."; } identity qam-1024-strong { base coding-modulation; description "1024 QAM strong coding and modulation scheme."; } identity qam-1024 { base coding-modulation; description "1024 QAM coding and modulation scheme."; } identity qam-1024-light { base coding-modulation; description "1024 QAM light coding and modulation scheme."; } identity qam-2048-strong { base coding-modulation; description "2048 QAM strong coding and modulation scheme."; } identity qam-2048 { base coding-modulation; description "2048 QAM coding and modulation scheme."; } identity qam-2048-light { base coding-modulation; description "2048 QAM light coding and modulation scheme."; } identity qam-4096-strong { base coding-modulation; description "4096 QAM strong coding and modulation scheme."; } identity qam-4096 { base coding-modulation; description "4096 QAM coding and modulation scheme."; } identity qam-4096-light { base coding-modulation; description "4096 QAM light coding and modulation scheme."; } /* * TDM-type identities */ identity tdm-type { description "A description of the type of TDM connection, also indicating the supported capacity of the connection."; } identity E1 { base tdm-type; description "E1 connection, 2,048 Mbit/s."; } identity STM-1 { base tdm-type; description "STM-1 connection, 155,52 Mbit/s."; } /* * Typedefs */ typedef power { type decimal64 { fraction-digits 1; } description "Type used for power values, selected and measured."; } /* * Radio Link Terminal (RLT) */ augment "/if:interfaces/if:interface" { when "if:type = 'mrl:radio-link-terminal'"; description "Addition of data nodes for radio link terminal to the standard Interface data model, for interfaces of the type 'radio-link-terminal'."; leaf id { type string; default ""; description "ID of the radio link terminal. Used by far-end when checking that it's connected to the correct RLT."; } leaf mode { type identityref { base rlt-mode; } mandatory true; description "A description of the mode in which the radio link terminal is configured. The format is X plus Y. X represent the number of bonded carrier terminations. Y represent the number of protecting carrier terminations."; } leaf-list carrier-terminations { type if:interface-ref; must "/if:interfaces/if:interface[if:name = current()]" + "/if:type = 'mrl:carrier-termination'" { description "The type of interface must be 'carrier-termination'."; } min-elements 1; description "A list of references to carrier terminations included in the radio link terminal."; } leaf-list rlp-groups { type leafref { path "/mrl:radio-link-protection-groups/" + "mrl:protection-group/mrl:name"; } description "A list of references to the carrier termination groups configured for radio link protection in this radio link terminal."; } leaf-list xpic-pairs { if-feature xpic; type leafref { path "/mrl:xpic-pairs/mrl:xpic-pair/mrl:name"; } description "A list of references to the XPIC pairs used in this radio link terminal. One pair can be used by two terminals."; reference "ETSI TR 102 311"; } leaf-list mimo-groups { if-feature mimo; type leafref { path "/mrl:mimo-groups/mrl:mimo-group/mrl:name"; } description "A reference to the MIMO group used in this radio link terminal. One group can be used by more than one terminal."; reference "ETSI TR 102 311"; } list tdm-connections { if-feature tdm; key "tdm-type"; description "A list stating the number of active TDM connections of a specified tdm-type that is configured to be supported by the RLT."; leaf tdm-type { type identityref { base tdm-type; } description "The type of TDM connection, which also indicates the supported capacity."; } leaf tdm-connections { type uint16; mandatory true; description "Number of connections of the specified type."; } } } /* * Carrier Termination */ augment "/if:interfaces/if:interface" { when "if:type = 'mrl:carrier-termination'"; description "Addition of data nodes for carrier termination to the standard Interface data model, for interfaces of the type 'carrier-termination'."; leaf carrier-id { type string; default "A"; description "ID of the carrier. (e.g. A, B, C or D) Used in XPIC & MIMO configurations to check that the carrier termination is connected to the correct far-end carrier termination. Should be the same carrier ID on both sides of the hop. Defaulted when not MIMO or XPIC."; } leaf tx-enabled { type boolean; default "false"; description "Disables (false) or enables (true) the transmitter. Only applicable when the interface is enabled (interface:enabled = true) otherwise it's always disabled."; } leaf tx-oper-status { type enumeration { enum "off" { description "Transmitter is off."; } enum "on" { description "Transmitter is on."; } enum "standby" { description "Transmitter is in standby."; } } config false; description "Shows the operative status of the transmitter."; } leaf tx-frequency { type uint32; units "kHz"; mandatory true; description "Selected transmitter frequency."; } leaf rx-frequency { type uint32; units "kHz"; description "Selected receiver frequency. Overrides existing value in duplex-distance. Calculated from tx-frequency and duplex-distance if only duplex-distance is configured. Must match duplex-distance if both leaves are configured in a single operation."; } leaf duplex-distance { type uint32; units "kHz"; description "Distance between Tx & Rx frequencies. Used to calculate rx-frequency when rx-frequency is not specifically configured. Overrides existing value in rx-frequency. Calculated from tx-frequency and rx-frequency if only rx-frequency is configured. Must match rx-frequency if both leaves are configured in a single operation."; } leaf channel-separation { type uint32; units "kHz"; mandatory true; description "The amount of bandwidth allocated to a carrier. The distance between adjacent channels in a radio frequency channels arrangement"; reference "ETSI EN 302 217-1"; } leaf polarization { type enumeration { enum "horizontal" { description "Horizontal polarization."; } enum "vertical" { description "Vertical polarization."; } enum "not-specified" { description "Polarization not specified."; } } default "not-specified"; description "Polarization - A textual description for info only."; } leaf power-mode { type enumeration { enum rtpc { description "Remote Transmit Power Control (RTPC)."; reference "ETSI EN 302 217-1"; } enum atpc { description "Automatic Transmit Power Control (ATPC)."; reference "ETSI EN 302 217-1"; } } mandatory true; description "A choice of Remote Transmit Power Control (RTPC) or Automatic Transmit Power Control (ATPC)."; } leaf maximum-nominal-power { type power { range "-99..40"; } units "dBm"; mandatory true; description "Selected output power in RTPC mode and selected maximum output power in ATPC mode. Minimum ouput power in ATPC mode is the same as the system capability, available-min-output-power."; reference "ETSI EN 302 217-1"; } leaf atpc-lower-threshold { when "../power-mode = 'atpc'"; type power { range "-99..-30"; } units "dBm"; mandatory true; description "The lower threshold for the input power at far-end used in the ATPC mode."; reference "ETSI EN 302 217-1"; } leaf atpc-upper-threshold { when "../power-mode = 'atpc'"; type power { range "-99..-30"; } units "dBm"; mandatory true; description "The upper threshold for the input power at far-end used in the ATPC mode."; reference "ETSI EN 302 217-1"; } leaf actual-transmitted-level { type power { range "-99..40"; } units "dBm"; config false; description "Actual transmitted power level (0.1 dBm resolution)."; reference "ETSI EN 301 129"; } leaf actual-received-level { type power { range "-99..-20"; } units "dBm"; config false; description "Actual received power level (0.1 dBm resolution)."; reference "ETSI EN 301 129"; } leaf coding-modulation-mode { type enumeration { enum single { description "a single modulation order only."; reference "ETSI EN 302 217-1"; } enum adaptive { description "Adaptive coding/modulation."; reference "ETSI EN 302 217-1"; } } mandatory true; description "A selection of single or adaptive coding/modulation mode."; } leaf selected-cm { when "../coding-modulation-mode = 'single'"; type identityref { base coding-modulation; } mandatory true; description "Selected the single coding/modulation."; } leaf selected-min-acm { when "../coding-modulation-mode = 'adaptive'"; type identityref { base coding-modulation; } mandatory true; description "Selected minimum coding/modulation. Adaptive coding/modulation shall not go below this value."; } leaf selected-max-acm { when "../coding-modulation-mode = 'adaptive'"; type identityref { base coding-modulation; } mandatory true; description "Selected maximum coding/modulation. Adaptive coding/modulation shall not go above this value."; } leaf actual-tx-cm { type identityref { base coding-modulation; } config false; description "Actual coding/modulation in transmitting direction."; } leaf actual-snir { type decimal64 { fraction-digits 1; range "0..99"; } units "dB"; config false; description "Actual signal to noise plus interference ratio. (0.1 dB resolution)."; } leaf actual-xpi { if-feature xpic; type decimal64 { fraction-digits 1; range "0..99"; } units "dB"; config false; description "The actual carrier to cross-polar interference. Only valid if XPIC is enabled. (0.1 dB resolution)."; reference "ETSI TR 102 311"; } container ct-performance-thresholds { description "Specification of thresholds for when alarms should be sent and cleared for various performance counters."; leaf received-level-alarm-threshold { type power { range "-99..-30"; } units "dBm"; default "-99"; description "An alarm is sent when the received power level is below the specified threshold."; reference "ETSI EN 301 129"; } leaf transmitted-level-alarm-threshold { type power { range "-99..40"; } units "dBm"; default "-99"; description "An alarm is sent when the transmitted power level is below the specified threshold."; reference "ETSI EN 301 129"; } leaf ber-alarm-threshold { type enumeration { enum "10e-9" { description "Threshold at 10e-9."; } enum "10e-8" { description "Threshold at 10e-8."; } enum "10e-7" { description "Threshold at 10e-7."; } enum "10e-6" { description "Threshold at 10e-6."; } enum "10e-5" { description "Threshold at 10e-5."; } enum "10e-4" { description "Threshold at 10e-4."; } enum "10e-3" { description "Threshold at 10e-3."; } enum "10e-2" { description "Threshold at 10e-2."; } enum "10e-1" { description "Threshold at 10e-1."; } } default "10e-6"; description "Specification of at which BER an alarm should be raised."; reference "ETSI EN 302 217-1"; } } leaf if-loop { type enumeration { enum disabled { description "Disables the IF Loop."; } enum client { description "Loops the signal back to the client side."; } enum radio { description "Loops the signal back to the radio side."; } } default "disabled"; description "Enable (client/radio) or disable (disabled) the IF loop, which loops the signal back to the client side or the radio side."; } leaf rf-loop { type enumeration { enum disabled { description "Disables the RF Loop."; } enum client { description "Loops the signal back to the client side."; } enum radio { description "Loops the signal back to the radio side."; } } default "disabled"; description "Enable (client/radio) or disable (disabled) the RF loop, which loops the signal back to the client side or the radio side."; } container capabilities { config false; description "Capabilities of the the installed equipment and some selected configurations."; leaf min-tx-frequency { type uint32; units "kHz"; description "Minimum Tx frequency possible to use."; } leaf max-tx-frequency { type uint32; units "kHz"; description "Maximum Tx frequency possible to use."; } leaf min-rx-frequency { type uint32; units "kHz"; description "Minimum Rx frequency possible to use."; } leaf max-rx-frequency { type uint32; units "kHz"; description "Maximum Tx frequency possible to use."; } leaf minimum-power { type power; units "dBm"; description "The minimum output power supported."; reference "ETSI EN 302 217-1"; } leaf maximum-available-power { type power; units "dBm"; description "The maximum output power supported."; reference "ETSI EN 302 217-1"; } leaf available-min-acm { type identityref { base coding-modulation; } description "Minimum coding-modulation possible to use."; } leaf available-max-acm { type identityref { base coding-modulation; } description "Maximum coding-modulation possible to use."; } } container error-performance-statistics { config false; description "ITU-T G.826 error performance statistics relevant for a microwave/millimeter wave carrier."; leaf bbe { type yang:counter32; units "number of block errors"; description "Number of Background Block Errors (BBE) during the interval. A BBE is an errored block not occurring as part of an SES."; reference "ITU-T G.826"; } leaf es { type yang:counter32; units "seconds"; description "Number of Errored Seconds (ES) since last reset. An ES is a one-second period with one or more errored blocks or at least one defect."; reference "ITU-T G.826"; } leaf ses { type yang:counter32; units "seconds"; description "Number of Severely Errored Seconds (SES) during the interval. SES is a one-second period which contains equal or more than 30% errored blocks or at least one defect. SES is a subset of ES."; reference "ITU-T G.826"; } leaf uas { type yang:counter32; units "seconds"; description "Number of Unavailable Seconds (UAS), that is, the total time that the node has been unavailable during a fixed measurement interval."; reference "ITU-T G.826"; } } container radio-performance-statistics { config false; description "ETSI EN 301 129 radio physical interface statistics relevant for a carrier termination."; leaf min-rltm { type power { range "-99..-20"; } units "dBm"; description "Minimum received power level since last reset."; reference "ETSI EN 301 129"; } leaf max-rltm { type power { range "-99..-20"; } units "dBm"; description "Maximum received power level since last reset."; reference "ETSI EN 301 129"; } leaf min-tltm { type power { range "-99..40"; } units "dBm"; description "Minimum transmitted power level since last reset."; reference "ETSI EN 301 129"; } leaf max-tltm { type power { range "-99..40"; } units "dBm"; description "Maximum transmitted power level since last reset."; reference "ETSI EN 301 129"; } } } /* * Radio Link Protection Groups */ container radio-link-protection-groups { description "Configuration of radio link protected groups (1+1) of carrier terminations in a radio link. More than one protected group per radio-link-terminal is allowed."; uses ifprot:protection-groups { refine protection-group/protection-members { must "/if:interfaces/if:interface[if:name = current()]" + "/if:type = 'mrl:carrier-termination'" { description "The type of a protection member must be 'carrier-termination'."; } } refine protection-group/working-entity { must "/if:interfaces/if:interface[if:name = current()]" + "/if:type = 'mrl:carrier-termination'" { description "The type of a working-entity must be 'carrier-termination'."; } } } } /* * XPIC & MIMO groups - Configuration data nodes */ container xpic-pairs { if-feature xpic; description "Configuration of carrier termination pairs for operation in XPIC mode."; reference "ETSI TR 102 311"; list xpic-pair { key "name"; description "List of carrier termination pairs in XPIC mode."; leaf name { type string; description "Name used for identification of the XPIC pair."; } leaf enabled { type boolean; default "false"; description "Enable(true)/disable(false) XPIC"; } leaf-list xpic-members { type if:interface-ref; must "/if:interfaces/if:interface[if:name = current()]" + "/if:type = 'mrl:carrier-termination'" { description "The type of a xpic-member must be 'carrier-termination'."; } min-elements 2; max-elements 2; description "Association to XPIC pairs used in the radio link terminal."; } } } container mimo-groups { if-feature mimo; description "Configuration of carrier terminations for operation in MIMO mode."; reference "ETSI TR 102 311"; list mimo-group { key "name"; description "List of carrier terminations in MIMO mode."; leaf name { type string; description "Name used for identification of the MIMO group."; } leaf enabled { type boolean; default "false"; description "Enable(true)/disable(false) MIMO"; } leaf-list mimo-members { type if:interface-ref; must "/if:interfaces/if:interface[if:name = current()]" + "/if:type = 'mrl:carrier-termination'" { description "The type of a mimo-member must be 'carrier-termination'."; } min-elements 2; description "Association to a MIMO group if used in the radio link terminal."; } } } }