CCAMP                                                         J. Ahlberg
Internet-Draft                                              J-O. Carlson
Intended status: Standards Track                               H-A. Lund
Expires: November 11, 2016                                   T. Olausson
                                                             Ericsson AB
                                                                   M. Ye
                                                 Huawei Technologies Co.
                                                             M. Vaupotic
                                                          Aviat Networks
                                                            May 10, 2016


                 Microwave Radio Link YANG Data Models
              draft-ahlberg-ccamp-microwave-radio-link-01

Abstract

   YANG model for managing microwave radio link functionality.

Status of This Memo

   This Internet-Draft is submitted in full conformance with the
   provisions of BCP 78 and BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF).  Note that other groups may also distribute
   working documents as Internet-Drafts.  The list of current Internet-
   Drafts is at http://datatracker.ietf.org/drafts/current/.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   This Internet-Draft will expire on November 11, 2016.

Copyright Notice

   Copyright (c) 2016 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of



Ahlberg, et al.         Expires November 11, 2016               [Page 1]


Internet-Draft              Microwave RL YANG                   May 2016


   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   2
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   2
     1.2.  Tree Diagrams . . . . . . . . . . . . . . . . . . . . . .   3
   2.  Objectives  . . . . . . . . . . . . . . . . . . . . . . . . .   3
   3.  Microwave Model . . . . . . . . . . . . . . . . . . . . . . .   3
   4.  Microwave Module  . . . . . . . . . . . . . . . . . . . . . .   6
   5.  Acknowledgements  . . . . . . . . . . . . . . . . . . . . . .  41
   6.  IANA Considerations . . . . . . . . . . . . . . . . . . . . .  41
   7.  Security Considerations . . . . . . . . . . . . . . . . . . .  41
   8.  References  . . . . . . . . . . . . . . . . . . . . . . . . .  41
     8.1.  Normative References  . . . . . . . . . . . . . . . . . .  41
     8.2.  Informative References  . . . . . . . . . . . . . . . . .  42
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . .  42

1.  Introduction

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in [RFC2119].

   This document is being discussed within the microwave community.

   This document defines a YANG RFC 6020 [RFC6020] module for managing
   the radio link functionality of a microwave node.  The YANG module is
   augmenting RFC 7223 [RFC7223] in order to model a microwave link and
   interface in analogy with most other data links in a router or
   switch.

   In summary, the YANG module defined in this internet draft is:
   microwave-radio-link (should be renamed to something like: if-
   microwave-radio-link) - Defines the model for basic configuration of
   a microwave radio link.

1.1.  Terminology

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119 [RFC2119].

   Other definitions to clarify....






Ahlberg, et al.         Expires November 11, 2016               [Page 2]


Internet-Draft              Microwave RL YANG                   May 2016


1.2.  Tree Diagrams

   A simplified graphical representation of the data model is used in
   this document.  The meaning of the symbols in these diagrams is as
   follows:

   o  Brackets "[" and "]" enclose list keys.

   o  Abbreviations before data node names: "rw" means configuration
      (read-write), and "ro" means state data (read-only).

   o  Symbols after data node names: "?" means an optional node, "!"
      means a presence container, and "*" denotes a list or leaf-list.

   o  Parentheses enclose choice and case nodes, and case nodes are also
      marked with a colon (":").

   o  Ellipsis ("...") stands for contents of subtrees that are not
      shown.

2.  Objectives

   The aim of of the YANG models contained in this draft is to provide
   the model that is required to implement the basic radio link
   management of microwave devices.

   This model may be augmented by vendor specific YANG modules in order
   to manage product specific functionality.

   However, the intention is that it should not be necessary to have any
   vendor specific extensions to the YANG model defined in this document
   to implement standard microwave radio link connectivity.

3.  Microwave Model

   The microwave radio link model provides the parameters for managing
   the radio link part of a microwave node.

   The "microwave-radio-link" YANG module has the following structure:

module: microwave-radio-link
   +--rw radio-link-protection-pairs
   |  +--rw radio-link-protection-pair* [name]
   |     +--rw name                             string
   |     +--rw protection-switch-mode?          enumeration
   |     +--rw revertive-preferred-tx?          if:interface-ref
   |     +--rw revertive-wait-to-restore?       uint16
   |     +--rw radio-link-protection-members*   if:interface-ref



Ahlberg, et al.         Expires November 11, 2016               [Page 3]


Internet-Draft              Microwave RL YANG                   May 2016


   +--ro radio-link-protection-pairs-state
   |  +--ro radio-link-protection-pair* [name]
   |     +--ro name                      string
   |     +--ro protection-status?        enumeration
   |     +--ro actual-wait-to-restore?   uint16
   +--rw xpic-pairs {xpic}?
   |  +--rw xpic-pair* [name]
   |     +--rw name            string
   |     +--rw enabled?        boolean
   |     +--rw xpic-members*   if:interface-ref
   +--rw mimo-groups {mimo}?
      +--rw mimo-group* [name]
         +--rw name            string
         +--rw enabled?        boolean
         +--rw mimo-members*   if:interface-ref
augment /if:interfaces/if:interface:
   +--rw id?                     string
   +--rw mode?                   identityref
   +--rw expected-far-end-id?    string
   +--rw far-end-id-check?       boolean
   +--rw carrier-terminations*   if:interface-ref
   +--rw rlp-pairs*              -> /radio-link-protection-pairs/radio-link-protection-pair/name
   +--rw xpic-pairs*             -> /xpic-pairs/xpic-pair/name {xpic}?
   +--rw mimo-group?             -> /mimo-groups/mimo-group/name {mimo}?
augment /if:interfaces/if:interface:
   +--rw carrier-id?                   string
   +--rw tx-admin-status?              enumeration
   +--rw tx-frequency?                 uint32
   +--rw rx-frequency?                 uint32
   +--rw duplex-distance?              uint32
   +--rw duplex-config?                boolean
   +--rw polarization?                 enumeration
   +--rw power-mode?                   enumeration
   +--rw selected-output-power?        power
   +--rw selected-min-output-power?    power
   +--rw selected-max-output-power?    power
   +--rw target-input-power-far-end?   power
   +--rw reference-sec?                identityref
   +--rw coding-modulation-mode?       enumeration
   +--rw selected-cm?                  identityref
   +--rw selected-min-acm?             identityref
   +--rw selected-max-acm?             identityref
   +--rw if-loop?                      boolean
   +--rw rf-loop?                      boolean
   +--rw ct-performance-thresholds
      +--rw input-power-alarm-threshold?          power
      +--rw output-power-alarm-threshold?         power
      +--rw ber-alarm-threshold?                  enumeration



Ahlberg, et al.         Expires November 11, 2016               [Page 4]


Internet-Draft              Microwave RL YANG                   May 2016


      +--rw rl-1-threshold-level?                 power
      +--rw rlts-1-15min-set-alarm-threshold?     uint16
      +--rw rlts-1-15min-reset-alarm-threshold?   uint16
      +--rw rlts-1-24h-set-alarm-threshold?       uint32
      +--rw tl-1-threshold-level?                 power
      +--rw tlts-1-15min-set-alarm-threshold?     power
      +--rw tlts-1-15min-reset-alarm-threshold?   power
      +--rw tlts-1-24h-set-alarm-threshold?       uint32
      +--rw es-15min-set-alarm-threshold?         uint16
      +--rw es-15min-reset-alarm-threshold?       uint16
      +--rw es-24h-set-alarm-threshold?           uint32
      +--rw ses-15min-set-alarm-threshold?        uint16
      +--rw ses-15min-reset-alarm-threshold?      uint16
      +--rw ses-24h-set-alarm-threshold?          uint32
      +--rw bbe-15min-set-alarm-threshold?        uint32
      +--rw bbe-15min-reset-alarm-threshold?      uint32
      +--rw bbe-24h-set-alarm-threshold?          uint32
      +--rw acm-15min-set-alarm-threshold?        uint16
      +--rw acm-15min-reset-alarm-threshold?      uint16
      +--rw acm-24h-set-alarm-threshold?          uint32
augment /if:interfaces-state/if:interface:
   +--ro tx-oper-status?       enumeration
   +--ro actual-ouput-power?   power
   +--ro actual-input-power?   power
   +--ro actual-tx-cm?         identityref
   +--ro actual-rx-cm?         identityref
   +--ro selected-min-speed?   yang:gauge64
   +--ro selected-max-speed?   yang:gauge64
   +--ro xpic-status?          enumeration {xpic}?
   +--ro mimo-status?          enumeration {mimo}?
   +--ro actual-snir?          decimal64
   +--ro actual-xpi?           decimal64 {xpic}?
   +--ro actual-si?            decimal64 {mimo}?
   +--ro capabilities
      +--ro min-tx-frequency?             uint32
      +--ro max-tx-frequency?             uint32
      +--ro min-rx-frequency?             uint32
      +--ro max-rx-frequency?             uint32
      +--ro duplex-type?                  enumeration
      +--ro channel-separation?           decimal64
      +--ro available-min-output-power?   power
      +--ro available-max-output-power?   power
      +--ro available-min-acm?            identityref
      +--ro available-max-acm?            identityref
      +--ro available-min-speed?          yang:gauge64
      +--ro available-max-speed?          yang:gauge64
augment /if:interfaces-state/if:interface/if:statistics:
   +--ro min-rltm?   power



Ahlberg, et al.         Expires November 11, 2016               [Page 5]


Internet-Draft              Microwave RL YANG                   May 2016


   +--ro max-rltm?   power
   +--ro min-tltm?   power
   +--ro max-tltm?   power
augment /if:interfaces-state/if:interface/if:statistics:
   +--ro bbe?    yang:counter32
   +--ro es?     yang:counter32
   +--ro ses?    yang:counter32
   +--ro uas?    yang:counter32
   +--ro bber?   decimal64
   +--ro esr?    decimal64
   +--ro sesr?   decimal64

4.  Microwave Module

   This YANG module augments the interfaces defined in RFC 7223
   [RFC7223].

<CODE BEGINS> file "microwave-radio-link.yang"
module microwave-radio-link {
        namespace "urn:ietf:params:xml:ns:yang:microwave-radio-link";
        prefix mrl;

        import ietf-yang-types {
                prefix yang;
        }
        import ietf-interfaces {
                prefix if;
        }
        import iana-if-type {
                prefix ianaift;
        }

        organization
                "IETF CCAMP Working Group";
        contact
                "jonas.ahlberg@ericsson.com
                 amy.yemin@huawei.com
                 jan-olof.carlson@ericsson.com
                 Marko.Vaupotic@Aviatnet.com
                 thomas.olausson@ericsson.com";

        description
                "This is a module for the entities in
                a generic microwave system.";

        revision 2016-05-10 {
                description
                "Draft revision.";



Ahlberg, et al.         Expires November 11, 2016               [Page 6]


Internet-Draft              Microwave RL YANG                   May 2016


                reference "";
        }

        revision 2016-05-10 {
                description
                        "2nd draft revision.";
                reference "";
        }
  revision 2016-03-11 {
    description
      "Draft revision.";
    reference "";
  }

        /*
         * Features
         */

        feature xpic {
    description
      "Indicates that the device supports XPIC.";
  }

        feature mimo {
    description
      "Indicates that the device supports MIMO.";
  }

        /*
         * 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
   */




Ahlberg, et al.         Expires November 11, 2016               [Page 7]


Internet-Draft              Microwave RL YANG                   May 2016


  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.";
  }

        identity two-plus-one {
    base rlt-mode;
    description
      "2 bonded carrier terminations and
                        one protecting carrier termination.";
  }

  /*
   * 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.";



Ahlberg, et al.         Expires November 11, 2016               [Page 8]


Internet-Draft              Microwave RL YANG                   May 2016


  }

        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.";



Ahlberg, et al.         Expires November 11, 2016               [Page 9]


Internet-Draft              Microwave RL YANG                   May 2016


  }

  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.";



Ahlberg, et al.         Expires November 11, 2016              [Page 10]


Internet-Draft              Microwave RL YANG                   May 2016


  }

  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.";



Ahlberg, et al.         Expires November 11, 2016              [Page 11]


Internet-Draft              Microwave RL YANG                   May 2016


  }

  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.";



Ahlberg, et al.         Expires November 11, 2016              [Page 12]


Internet-Draft              Microwave RL YANG                   May 2016


  }

  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.";
  }

  /*
   * Spectrum Efficiency Class identities
   */

  identity spectrum-efficiency-class {
    description
      "Spectrum Efficiency Class (SEC).";
  }

  identity class-1 {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 1.";
  }

  identity class-2 {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 2.";
  }

  identity class-3 {



Ahlberg, et al.         Expires November 11, 2016              [Page 13]


Internet-Draft              Microwave RL YANG                   May 2016


    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 3.";
  }

  identity class-4l {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 4l.";
  }

  identity class-4h {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 4h.";
  }

  identity class-5l {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5l.";
  }

  identity class-5la {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5la.";
  }

  identity class-5lb {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5lb.";
  }

  identity class-5h {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5h.";
  }

  identity class-5ha {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5ha.";
  }

  identity class-5hb {



Ahlberg, et al.         Expires November 11, 2016              [Page 14]


Internet-Draft              Microwave RL YANG                   May 2016


    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 5hb.";
  }

  identity class-6l {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6l.";
  }

  identity class-6la {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6la.";
  }

  identity class-6lb {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6lb.";
  }

  identity class-6h {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6h.";
  }

  identity class-6ha {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6ha.";
  }

  identity class-6hb {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 6hb.";
  }

  identity class-7 {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 7.";
  }

  identity class-7a {



Ahlberg, et al.         Expires November 11, 2016              [Page 15]


Internet-Draft              Microwave RL YANG                   May 2016


    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 7a.";
  }

  identity class-7b {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 7b.";
  }

  identity class-8 {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 8.";
  }

  identity class-8a {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 8a.";
  }

  identity class-8b {
    base spectrum-efficiency-class;
    description
      "Spectrum Efficiency Class 8b.";
  }

  /*
   * Typedefs
   */

  typedef power {
    type decimal64 {
                        fraction-digits 1;
                }
                description
                        "Type used for power values, selected and measured.";
        }

  /*
   * G.826 stats grouping
   */
  grouping g826-stats {

    description
      "G.826 statistics operational data ";



Ahlberg, et al.         Expires November 11, 2016              [Page 16]


Internet-Draft              Microwave RL YANG                   May 2016


                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.";
                }

    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.";
    }

    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.";
    }

    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.";
    }

    leaf bber {
      type decimal64 {
        fraction-digits 18;
      }
      units "ratio";
      description
        "Background Block Error (BBER) ratio, that is, the
         ratio of errored blocks to total blocks during a fixed
         measurement interval. BBER does not include any blocks
         during SES and Unavailable Time.";
    }



Ahlberg, et al.         Expires November 11, 2016              [Page 17]


Internet-Draft              Microwave RL YANG                   May 2016


    leaf esr {
      type decimal64 {
        fraction-digits 18;
      }
      units "ratio";
      description
        "Errored Seconds (ESR) ratio, that is, the ratio of
         Errored Seconds to Available Time during a fixed
         measurement interval.";
    }

    leaf sesr {
      type decimal64 {
        fraction-digits 18;
      }
      units "ratio";
      description
        "Severely Errored Seconds Ratio (SESR), that is, the
         ratio of SES to total seconds in Available Time during
         a fixed measurement interval.";
    }
  }

  /*
   * Radio Link Terminal (RLT) - Configuration data nodes
   */

  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;
      }
      default "one-plus-zero";
      description
        "A description of the mode in which the radio link
         terminal is configured. The format is X plus Y.



Ahlberg, et al.         Expires November 11, 2016              [Page 18]


Internet-Draft              Microwave RL YANG                   May 2016


                                 X represent the number of bonded carrier terminations.
                                 Y represent the number of protecting carrier
                                 terminations.";
    }
    leaf expected-far-end-id {
      type string;
      default "";
      description
        "Expected ID of the radio link terminal at far-end.";
    }
    leaf far-end-id-check {
      type boolean;
      default "false";
      description
        "Enable(true)/disable(false) check of the ID of the
         radio link terminal at far-end. When true, the system
         verifies that far-end radio link terminal ID is equal to
         the expected. If ok then the radio link terminal status
         is UP. If not ok, then the status is stated as DOWN.";
    }
    leaf-list carrier-terminations {
      type if:interface-ref;
      must "/if:interfaces/if:interface[if:name = current()]"
         + "/if:type = 'carrier-termination'" {
        description
          "The type of interface must be
           'carrier-termination'.";
      }
      description
        "A list of references to carrier terminations
         included in the radio link terminal.";
    }
    leaf-list rlp-pairs {
      type leafref {
        path "/mrl:radio-link-protection-pairs/"
           + "mrl:radio-link-protection-pair/mrl:name";
      }
      description
        "A list of references to the carrier termination
         pairs 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



Ahlberg, et al.         Expires November 11, 2016              [Page 19]


Internet-Draft              Microwave RL YANG                   May 2016


        "A list of references to the XPIC pairs used in this
         radio link terminal. One pair can be used by two
         terminals.";
    }
    leaf mimo-group {
                        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.";
    }
  }

  /*
   * Carrier Termination - Configuration data nodes
   */

  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-admin-status {
      type enumeration {
        enum "off" {
                                        description "Transmitter is disabled.";
                                }
        enum "on" {
                                        description "Transmitter is enabled.";
                                }
      }
      description



Ahlberg, et al.         Expires November 11, 2016              [Page 20]


Internet-Draft              Microwave RL YANG                   May 2016


        "The adminstrative status of the transmitter.
                                 Disables (off) or enables (on) the transmitter.
                                 Only applicable when the interface is enabled
                                 (interface:enabled = true) otherwise it's always
                                 disabled.";
    }
    leaf tx-frequency {
      type uint32;
      units "kHz";
      default "0";
      description
        "Selected transmitter frequency.";
    }
    leaf rx-frequency {
      type uint32;
      units "kHz";
      default "0";
      description
        "Selected receiver frequency.
         Only writeable when duplex-config=disabled and
         duplex-type=variable.";
    }
    leaf duplex-distance {
      type uint32;
      units "kHz";
      default "0";
      description
        "Distance between Tx & Rx frequencies.
         Only writeable when duplex-config=true and
         duplex-type=variable.";
    }
    leaf duplex-config {
      type boolean;
      default "false";
      description
        "Enable (true) or disable (false) configuration of
         rxFrequency using a defined duplex distance.";
    }
    leaf polarization {
      type enumeration {
        enum "horizontal" {
                                        description "Horizontal polarization.";
                                }
        enum "vertical" {
                                        description "Vertical polarization.";
                                }
        enum "not-specified" {
                                        description "Polarization not specified.";



Ahlberg, et al.         Expires November 11, 2016              [Page 21]


Internet-Draft              Microwave RL YANG                   May 2016


                                }
      }
      default "not-specified";
      description
        "Polarization - A textual description for info only.";
    }

                leaf power-mode {
                        type enumeration {
                                enum rtpc {
                                        description "Remote Transmit Power Control (RTPC).";
                                }
                                enum atpc {
                                        description "Automatic Transmit Power Control (ATPC).";
                                }
                        }
                        description
                                "A choice of Remote Transmit Power Control (RTPC)
                                 or Automatic Transmit Power Control (ATPC).";
                }

                leaf selected-output-power {
                        when "../power-mode = 'rtpc'";
                        type power {
                                range "-99..40";
                        }
                        units "dBm";
                        description
                                "Selected output power in RTPC mode.";
                }

                leaf selected-min-output-power {
                        when "../power-mode = 'atpc'";
                        type power {
                                range "-99..40";
                        }
                        units "dBm";
                        description
                                "Selected minimum output power in
                                 ATPC mode.";
                }
                leaf selected-max-output-power {
                        when "../power-mode = 'atpc'";
                        type power {
                                range "-99..40";
                        }
                        units "dBm";
                        description



Ahlberg, et al.         Expires November 11, 2016              [Page 22]


Internet-Draft              Microwave RL YANG                   May 2016


                                "Selected maximum output power in
                                 ATPC mode.";
                }
                leaf target-input-power-far-end {
                        when "../power-mode = 'atpc'";
                        type power {
                                range "-99..-30";
                        }
                        units "dBm";
                        description
                                "The wanted received input power at far-end,
                                when running ATPC.";
                }

    leaf reference-sec {
      type identityref {
        base spectrum-efficiency-class;
      }
      description
        "Each modulation is compliant to a Spectrum Efficiency
         Class (SEC). When running Adaptive Coding/Modulation,
         one SEC has to be selected for all the coding/
         modulations between selected-min-acm and
         selected-max-acm. This parameter is called Reference
         SEC. This setting might affect
         available-max-output-power, in order to fulfill
         spectrum requirements.";
    }

                leaf coding-modulation-mode {
                        type enumeration {
                                enum fixed {
                                        description "Fixed coding/modulation.";
                                }
                                enum adaptive {
                                        description "Adaptive coding/modulation.";
                                }
                        }
                        description
                                "A selection of fixed or
                                 adaptive coding/modulation mode.";
                 }

                leaf selected-cm {
                        when "../coding-modulation-mode = 'fixed'";
                        type identityref {
                                base coding-modulation;
                        }



Ahlberg, et al.         Expires November 11, 2016              [Page 23]


Internet-Draft              Microwave RL YANG                   May 2016


                        description
                                "Selected fixed coding/modulation.";
                }

                leaf selected-min-acm {
                        when "../coding-modulation-mode = 'adaptive'";
                        type identityref {
                                base coding-modulation;
                        }
                        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;
                        }
                        description
                                "Selected maximum coding/modulation.
                                 Adaptive coding/modulation shall not go
                                 above this value.";
                }

    leaf if-loop {
      type boolean;
      default "false";
      description
        "Enable (true) or disable (false) the IF loop,
                                 which loops the signal back to the client side
                                 (not the radio side).";
    }
    leaf rf-loop {
      type boolean;
      default "false";
      description
        "Enable (true) or disable (false) the RF loop,
                                 which loops the signal back to the client side
                                 (not the radio side).";
    }
    container ct-performance-thresholds {
      description
        "Specification of thresholds for when alarms should
         be sent and cleared for various performance counters.";
                        leaf input-power-alarm-threshold {
                                type power {



Ahlberg, et al.         Expires November 11, 2016              [Page 24]


Internet-Draft              Microwave RL YANG                   May 2016


                                        range "-99..-30";
                                }
                                units "dBm";
                                default "-93";
                                description
                                        "Specification of at which input power an alarm should
                                        be raised.";
                        }
      leaf output-power-alarm-threshold {
        type power {
          range "-99..40";
        }
        units "dBm";
        description
          "An alarm is sent when the actual output power is
           below the specified threshold.";
      }
      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";



Ahlberg, et al.         Expires November 11, 2016              [Page 25]


Internet-Draft              Microwave RL YANG                   May 2016


        description
          "Specification of at which BER an alarm should
           be raised.";
      }
      leaf rl-1-threshold-level {
        type power {
          range "-99..40";
        }
        units "dBm";
        description
          "Specifies the threshold level for Received Level 1.
           When the received level (input power) is below this
           level the Received Level Threshold Seconds 1 (RLTS1)
           is counted.";
      }
      leaf rlts-1-15min-set-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for RLTS1.
           An alarm is send as soon as the received level has
           been below the Received Level 1 threshold for the
           number of seconds configured in this threshold
           during a 15 minutes interval.";
      }
      leaf rlts-1-15min-reset-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for RLTS1.
           An alarm clearing is sent when the received level
           has been below the RLTS1 threshold less seconds than
           indicated by this threshold for a 15 minutes
           interval.";
      }
      leaf rlts-1-24h-set-alarm-threshold {
        type uint32 {
          range "1..86400";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for RLTS1.
           An alarm is send as soon as the received level has
           been below the Received Level 1 threshold for the



Ahlberg, et al.         Expires November 11, 2016              [Page 26]


Internet-Draft              Microwave RL YANG                   May 2016


           number of seconds configured in this threshold
           during a 24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }
      leaf tl-1-threshold-level {
        type power {
          range "-100..35";
        }
        units "dBm";
        description
          "Specifies the threshold level for Transmitted
           Level 1. When the transmitted level (output power)
           is above this level the Transmitted Level Threshold
           Seconds 1 (TLTS1) is counted.";
      }
      leaf tlts-1-15min-set-alarm-threshold {
        type power {
          range "1..900";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for TLTS1.
           An alarm is send as soon as the transmitted level
           has been above the Transmitted Level 1 threshold
           for the number of seconds configured in this
           threshold during a 15 minutes interval.";
      }
      leaf tlts-1-15min-reset-alarm-threshold {
        type power {
          range "1..900";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for TLTS1.
           An alarm clearing is sent when the transmitted level
           has been above the TLTS1 threshold less seconds than
           indicated by this threshold for a 15 minutes
           interval.";
      }
      leaf tlts-1-24h-set-alarm-threshold {
        type uint32 {
          range "1..86400";
        }
        units "seconds";
        description
          "Specifies the threshold value in seconds for TLTS1.
           An alarm is send as soon as the transmitted level



Ahlberg, et al.         Expires November 11, 2016              [Page 27]


Internet-Draft              Microwave RL YANG                   May 2016


           has been above the Transmitted Level 1 threshold for
           the number of seconds configured in this threshold
           during a 24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }
      leaf es-15min-set-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm is sent when the number of Errored Seconds
           (es) exceeds the specified threshold in a
           15 minutes interval.";
      }
      leaf es-15min-reset-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm clearing is sent when the the number of
           Errored Seconds (es) has been below the specified
           threshold in a 15 minutes interval.";
      }
      leaf es-24h-set-alarm-threshold {
        type uint32 {
          range "1..86400";
        }
        units "seconds";
        description
          "An alarm is sent when the number of Errored Seconds
           (es) exceeds the specified threshold in a
           24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }
      leaf ses-15min-set-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm is sent when the number of Severely
           Errored Seconds (ses) exceeds the specified
           threshold in a 15 minutes interval.";
      }



Ahlberg, et al.         Expires November 11, 2016              [Page 28]


Internet-Draft              Microwave RL YANG                   May 2016


      leaf ses-15min-reset-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm clearing is sent when the the number of
           Severely Errored Seconds (ses) has been below the
           specified threshold in a 15 minutes interval.";
      }
      leaf ses-24h-set-alarm-threshold {
        type uint32 {
          range "1..86400";
        }
        units "seconds";
        description
          "An alarm is sent when the number of Severely
           Errored Seconds (ses) exceeds the specified
           threshold in a 24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }
      leaf bbe-15min-set-alarm-threshold {
        type uint32;
        units "number of block errors";
        description
          "An alarm is sent when the number of Background
           Block Errors (bbe) exceeds the specified threshold
           in a 15 minutes interval.";
      }
      leaf bbe-15min-reset-alarm-threshold {
        type uint32;
        units "number of block errors";
        description
          "An alarm clearing is sent when the the number of
           Background Block Errors (bbe) has been below the
           specified threshold in a 15 minutes interval.";
      }
      leaf bbe-24h-set-alarm-threshold {
        type uint32;
        units "number of block errors";
        description
          "An alarm is sent when the number of Background
           Block Errors (bbe) exceeds the specified threshold
           in a 24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }



Ahlberg, et al.         Expires November 11, 2016              [Page 29]


Internet-Draft              Microwave RL YANG                   May 2016


      leaf acm-15min-set-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm is sent when time in minimum coding &
           modulation (selected-min-acm) exceeds the specified
                   threshold in a 15 minutes interval.";
      }
      leaf acm-15min-reset-alarm-threshold {
        type uint16 {
          range "1..900";
        }
        units "seconds";
        description
          "An alarm clearing is sent when the the time in
           minimum coding & modulation (selected-min-acm)
                   has been below the specified threshold in a 15 minutes
                   interval.";
      }
      leaf acm-24h-set-alarm-threshold {
        type uint32 {
          range "1..86400";
        }
        units "seconds";
        description
          "An alarm is sent when time in minimum coding &
           modulation (selected-min-acm) exceeds the specified
                   threshold in a 24 hours interval.
           The alarm is cleared after the next 24 hours if
           the threshold is not crossed.";
      }
    }
  }

  /*
   * Carrier Termination - Operational state data nodes
   */

  augment "/if:interfaces-state/if:interface" {
    when "if:type = 'mrl:carrier-termination'";
    description
      "Addition of state data nodes for carrier termination to
       the standard Interface state data model, for interfaces of
       the type 'carrier-termination'.";
    leaf tx-oper-status {
      type enumeration {



Ahlberg, et al.         Expires November 11, 2016              [Page 30]


Internet-Draft              Microwave RL YANG                   May 2016


        enum "off" {
                                        description "Transmitter is off.";
                                }
        enum "on" {
                                        description "Transmitter is on.";
                                }
        enum "standby" {
                                        description "Transmitter is in standby.";
                                }
      }
      description
        "Shows the operative status of the transmitter.";
    }
    leaf actual-ouput-power {
      type power {
        range "-99..40";
      }
      units "dBm";
      description
        "Actual transmitted output power (0.1 dBm resolution).";
    }
    leaf actual-input-power {
      type power {
        range "-99..-20";
      }
      units "dBm";
      description
        "Actual input power (0.1 dBm resolution).";
    }
    leaf actual-tx-cm {
      type identityref {
         base coding-modulation;
      }
      description
        "Actual coding/modulation in transmitting direction.";
    }
    leaf actual-rx-cm {
      type identityref {
         base coding-modulation;
      }
      description
        "Actual coding/modulation in receiving direction.";
    }
    leaf selected-min-speed {
      type yang:gauge64;
      units "bit/s";
      description
        "Selected minimum speed, derived from selected-min-acm



Ahlberg, et al.         Expires November 11, 2016              [Page 31]


Internet-Draft              Microwave RL YANG                   May 2016


         (adaptive) or selected-cm (fixed).";
    }
    leaf selected-max-speed {
      type yang:gauge64;
      units "bit/s";
      description
        "Selected maximum speed, derived from selected-max-acm
         (adaptive) or selected-cm (fixed).";
    }
    leaf xpic-status {
                        if-feature xpic;
      type enumeration {
        enum "locked" {
                                        description "XPIC status is locked.";
                                }
        enum "unlocked" {
                                        description "XPIC status is unlocked.";
                                }
        enum "na" {
                                        description "XPIC status is not applicable.";
                                }
      }
      description
        "Status of the XPIC. Only valid if XPIC is enabled.";
    }
    leaf mimo-status {
                        if-feature mimo;
      type enumeration {
        enum "locked" {
                                        description "MIMO status is locked.";
                                }
        enum "unlocked" {
                                        description "MIMO status is unlocked.";
                                }
        enum "na" {
                                        description "MIMO status is not applicable.";
                                }
      }
      description
        "Status of the MIMO. Only valid if MIMO is enabled.";
    }
    leaf actual-snir {
      type decimal64 {
        fraction-digits 1;
        range "0..99";
      }
      units "dB";
      description



Ahlberg, et al.         Expires November 11, 2016              [Page 32]


Internet-Draft              Microwave RL YANG                   May 2016


        "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 "dBc";
      description
        "The actual carrier to cross-polar interference.
         Only valid if XPIC is enabled. (0.1 dBc resolution).";
    }
    leaf actual-si {
                        if-feature mimo;
      type decimal64 {
        fraction-digits 1;
        range "-99..99";
      }
      units "dBc";
      description
        "Actual MIMO Spatial Interference.
         Only valid if MIMO is enabled. (0.1 dBc resolution).";
    }
    container capabilities {
      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 {



Ahlberg, et al.         Expires November 11, 2016              [Page 33]


Internet-Draft              Microwave RL YANG                   May 2016


        type uint32;
        units "kHz";
        description
          "Maximum Tx frequency possible to use.";
      }
      leaf duplex-type {
        type enumeration {
          enum "fixed" {
                                                description "Duplex distance is fixed.";
                                        }
          enum "variable" {
                                                description "Duplex distance is variable.";
                                        }
        }
        description
          "The duplex type is given by the equipment used.
           It can be a fixed duplex distance or a variable
           distance which can be configured by selecting
           rx-frequency or duplex-distance.";
      }
      leaf channel-separation {
                                type decimal64 {
                                        fraction-digits 1;
                                }
                                units "MHz";
        description
          "The amount of bandwidth allocated to a carrier.";
      }
      leaf available-min-output-power {
        type power;
        units "dBm";
        description
          "The minimum output power supported.";
      }
      leaf available-max-output-power {
        type power;
        units "dBm";
        description
          "The maximum output power supported.";
      }
      leaf available-min-acm {
                                type identityref {
                                        base coding-modulation;
                                }
        description
          "Minimum coding-modulation possible to use.";
      }
      leaf available-max-acm {



Ahlberg, et al.         Expires November 11, 2016              [Page 34]


Internet-Draft              Microwave RL YANG                   May 2016


        type identityref {
                                        base coding-modulation;
                                }
        description
          "Maximum coding-modulation possible to use.";
      }
      leaf available-min-speed {
        type yang:gauge64;
        units "bit/s";
        description
          "Minimum speed that can be supported given
           by the available-min-acm.";
      }
      leaf available-max-speed {
        type yang:gauge64;
        units "bit/s";
        description
          "Maximum speed that can be supported given
           by the available-max-acm.";
      }
    }
  }

  augment "/if:interfaces-state/if:interface/if:statistics" {
    when "../if:type = 'mrl:carrier-termination'";
    description
      "Addition of state data nodes in the container statistics
       for carrier terminations to the standard Interface data
       model, for interfaces of the type 'carrier-termination'.";

    leaf min-rltm {
      type power {
                                range "-99..-20";
      }
      units "dBm";
      description
        "Minimum input power since last reset.";
    }
    leaf max-rltm {
      type power {
                                range "-99..-20";
      }
      units "dBm";
      description
        "Maximum input power since last reset.";
    }

    leaf min-tltm {



Ahlberg, et al.         Expires November 11, 2016              [Page 35]


Internet-Draft              Microwave RL YANG                   May 2016


      type power {
                                range "-99..40";
      }
      units "dBm";
      description
        "Minimum output power since last reset.";
    }
    leaf max-tltm {
      type power {
                                range "-99..40";
      }
      units "dBm";
      description
        "Maximum output power since last reset.";
    }
  }

  augment "/if:interfaces-state/if:interface/if:statistics" {
    when "(../if:type = 'mrl:carrier-termination') or
          (../if:type = 'mrl:radio-link-terminal')";
    description
      "Addition of G.826 statsistics in the container statistics
       of the standard Interface state data model.";

    uses g826-stats;
  }

  /*
   * Radio Link Protection Pairs - Configuration data nodes
   */

  container radio-link-protection-pairs {
        description
                "Configuration of radio link protected pairs (1+1) of
                carrier terminations in a radio link. More than one
                protected pair per radio-link-terminal is allowed.";
        list radio-link-protection-pair {
      key "name";
          description
                "List of protected pairs of carrier terminations
                in a radio link.";
      leaf name {
        type string;
        description
          "Name used for identification of the radio
           link protection pair";
      }
      leaf protection-switch-mode {



Ahlberg, et al.         Expires November 11, 2016              [Page 36]


Internet-Draft              Microwave RL YANG                   May 2016


        type enumeration {
          enum "manual" {
                                                description
                                                        "Automatic switching is disabled and
                                                         operator can select Tx manually.";
                                        }
          enum "auto" {
                                                description
                                                        "System automatically switches from the degraded
                                                         to the other receiver(Rx) or transmitter (Tx).";
                                        }
          enum "auto-and-revertive" {
                                                description
                                                "Makes it possible to manually set the preferred Tx.";
                                        }
        }
        default "auto";
        description
          "The mode in which the switching mechanism is
           configured.
                                         Auto - System automatically switches from the
           degraded to the other receiver(Rx) or transmitter (Tx).
           Manual - Automatic switching is disabled and
           operator can select Tx manually.
           Auto & Revertive - makes it possible to manually
           set the preferred Tx.";
      }
      leaf revertive-preferred-tx {
        type if:interface-ref;
        must "/if:interfaces/if:interface[if:name =  current()]"
           + "/if:type = 'carrier-termination'" {
          description
            "The type of a preferred-tx must be
             'carrier-termination'.";
        }
        description
          "Association to the preferred carrier
           termination in revertive protection mode.";
      }
      leaf revertive-wait-to-restore {
        type uint16;
        units "seconds";
        default "0";
        description
          "The time to wait before switching back to the
           preferred Tx in Auto & Revertive mode.";
      }
      leaf-list radio-link-protection-members {



Ahlberg, et al.         Expires November 11, 2016              [Page 37]


Internet-Draft              Microwave RL YANG                   May 2016


        type if:interface-ref;
        must "/if:interfaces/if:interface[if:name = current()]"
           + "/if:type = 'carrier-termination'" {
          description
            "The type of a protection member must be
             'carrier-termination'.";
        }
        min-elements 2;
        max-elements "2";
        description
          "Association to a pair of carrier terminations
           configured for radio link protection and used in
           the radio link terminal.";
      }
    }
  }

  /*
   * Radio Link Protection Pairs - Configuration state data nodes
   */

  container radio-link-protection-pairs-state {
        config false;
        description
                "State data for radio link protected pairs (1+1) of
                carrier terminations in a radio link.";
    list radio-link-protection-pair {
      key "name";
                        description
                        "List of protected pairs of carrier terminations
                         in a radio link.";
      leaf name {
        type string;
        description
          "Name used for identification of the radio
           link protection pair.";
      }
      leaf protection-status {
        type enumeration {
          enum "unprotected" {
                                                description "Not protected";
                                        }
          enum "protected" {
                                                description "Protected";
                                        }
          enum "unable-to-protect" {
                                                description "Unable to protect";
                                        }



Ahlberg, et al.         Expires November 11, 2016              [Page 38]


Internet-Draft              Microwave RL YANG                   May 2016


        }
        description
          "Status of the protection, in a pair of carrier
           terminations configured in a radio link protection
           mode.";
      }
      leaf actual-wait-to-restore {
                                when "/radio-link-protection-pairs/"
                                        + "radio-link-protection-pair[name =  current()]"
          + "/protection-switch-mode = 'auto-and-revertive'";
                                type uint16;
        units "seconds";
        description
          "The actual time to wait before switching back to the
           preferred Tx in Auto & Revertive mode.";
      }
    }
  }

  /*
   * XPIC & MIMO groups - Configuration data nodes
   */

  container xpic-pairs {
                if-feature xpic;
                description
                        "Configuration of carrier termination pairs
                         for operation in XPIC mode.";
                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 = 'carrier-termination'" {
                                        description



Ahlberg, et al.         Expires November 11, 2016              [Page 39]


Internet-Draft              Microwave RL YANG                   May 2016


                                                "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.";
    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 = '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.";
      }
    }
  }
}
<CODE ENDS>



Ahlberg, et al.         Expires November 11, 2016              [Page 40]


Internet-Draft              Microwave RL YANG                   May 2016


5.  Acknowledgements

6.  IANA Considerations

   This document defines a new YANG module and the authors politely
   request that IANA assigns unique names to the YANG module file
   contained within this draft, and also appropriate URIs in the "IETF
   XML Registry".

7.  Security Considerations

   The YANG module defined in this memo is designed to be accessed via
   the NETCONF protocol RFC 6241 [RFC6241].  The lowest NETCONF layer is
   the secure transport layer and the mandatory to implement secure
   transport is SSH RFC 6242 [RFC6242].  The NETCONF access control
   model RFC 6536 [RFC6536] provides the means to restrict access for
   particular NETCONF users to a pre-configured subset of all available
   NETCONF protocol operations and content.

   There are a number of data nodes defined in this YANG module which
   are writable/creatable/deletable (i.e. config true, which is the
   default).  These data nodes may be considered sensitive or vulnerable
   in some network environments.  Write operations (e.g. edit-config) to
   these data nodes without proper protection can have a negative effect
   on network operations.  These are the subtrees and data nodes and
   their sensitivity/vulnerability:

8.  References

8.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <http://www.rfc-editor.org/info/rfc2119>.

   [RFC6020]  Bjorklund, M., Ed., "YANG - A Data Modeling Language for
              the Network Configuration Protocol (NETCONF)", RFC 6020,
              DOI 10.17487/RFC6020, October 2010,
              <http://www.rfc-editor.org/info/rfc6020>.

   [RFC7223]  Bjorklund, M., "A YANG Data Model for Interface
              Management", RFC 7223, DOI 10.17487/RFC7223, May 2014,
              <http://www.rfc-editor.org/info/rfc7223>.







Ahlberg, et al.         Expires November 11, 2016              [Page 41]


Internet-Draft              Microwave RL YANG                   May 2016


8.2.  Informative References

   [RFC6241]  Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
              and A. Bierman, Ed., "Network Configuration Protocol
              (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
              <http://www.rfc-editor.org/info/rfc6241>.

   [RFC6242]  Wasserman, M., "Using the NETCONF Protocol over Secure
              Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
              <http://www.rfc-editor.org/info/rfc6242>.

   [RFC6536]  Bierman, A. and M. Bjorklund, "Network Configuration
              Protocol (NETCONF) Access Control Model", RFC 6536,
              DOI 10.17487/RFC6536, March 2012,
              <http://www.rfc-editor.org/info/rfc6536>.

Authors' Addresses

   Jonas Ahlberg
   Ericsson AB
   Sweden

   Email: jonas.ahlberg@ericsson.com


   Jan-Olof Carlson
   Ericsson AB
   Sweden

   Email: jan-olof.carlson@ericsson.com


   Hans-Ake Lund
   Ericsson AB
   Sweden

   Email: hans-ake.lund@ericsson.com


   Thomas Olausson
   Ericsson AB
   Sweden

   Email: thomas.olausson@ericsson.com







Ahlberg, et al.         Expires November 11, 2016              [Page 42]


Internet-Draft              Microwave RL YANG                   May 2016


   Min Ye
   Huawei Technologies Co.
   P.R.China

   Email: amy.yemin@huawei.com


   Marko Vaupotic
   Aviat Networks
   Slovenia

   Email: Marko.Vaupotic@Aviatnet.com







































Ahlberg, et al.         Expires November 11, 2016              [Page 43]