module ietf-microwave-types {
  yang-version 1.1;
  namespace "urn:ietf:params:xml:ns:yang:ietf-microwave-types";
  prefix mw-types;

  organization
    "Internet Engineering Task Force (IETF) CCAMP WG";
  contact
    "WG List: <mailto:ccamp@ietf.org>

     Editors:
      Jonas Ahlberg (jonas.ahlberg@ericsson.com)
      Min Ye (amy.yemin@huawei.com)
      Xi Li (Xi.Li@neclab.eu)
      Daniela Spreafico (daniela.spreafico@nokia.com)
      Marko Vaupotic (Marko.Vaupotic@aviatnet.com)";
  description
    "This module contains a collection of YANG data types
     considered generally useful for microwave interfaces.

     Copyright (c) 2019 IETF Trust and the persons identified as
     authors of the code.  All rights reserved.

     Redistribution and use in source and binary forms, with or
     without modification, is permitted pursuant to, and subject
     to the license terms contained in, the Simplified BSD License
     set forth in Section 4.c of the IETF Trust's Legal Provisions
     Relating to IETF Documents
     (http://trustee.ietf.org/license-info).

     This version of this YANG module is part of RFC 8561; see
     the RFC itself for full legal notices.";

  revision 2019-06-19 {
    description
      "Initial revision.";
    reference
      "RFC 8561: A YANG Data Model for Microwave Radio Link";
  }

  /*
   * 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 represents the number of bonded carrier terminations.
       Y represents 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 {
    base coding-modulation;
    description
      "Half BPSK coding and modulation scheme.";
  }

  identity half-bpsk-strong {
    base half-bpsk;
    description
      "Half BPSK strong coding and modulation scheme.";
  }

  identity half-bpsk-light {
    base half-bpsk;
    description
      "Half BPSK light coding and modulation scheme.";
  }

  identity bpsk {
    base coding-modulation;
    description
      "BPSK coding and modulation scheme.";
  }

  identity bpsk-strong {
    base bpsk;
    description
      "BPSK strong coding and modulation scheme.";
  }

  identity bpsk-light {
    base bpsk;
    description
      "BPSK light coding and modulation scheme.";
  }

  identity qpsk {
    base coding-modulation;
    description
      "QPSK coding and modulation scheme.";
  }

  identity qam-4 {
    base coding-modulation;
    description
      "4 QAM coding and modulation scheme.";
  }

  identity qam-4-strong {
    base qam-4;
    description
      "4 QAM strong coding and modulation scheme.";
  }

  identity qam-4-light {
    base qam-4;
    description
      "4 QAM light coding and modulation scheme.";
  }

  identity qam-16 {
    base coding-modulation;
    description
      "16 QAM coding and modulation scheme.";
  }

  identity qam-16-strong {
    base qam-16;
    description
      "16 QAM strong coding and modulation scheme.";
  }

  identity qam-16-light {
    base qam-16;
    description
      "16 QAM light coding and modulation scheme.";
  }

  identity qam-32 {
    base coding-modulation;
    description
      "32 QAM coding and modulation scheme.";
  }

  identity qam-32-strong {
    base qam-32;
    description
      "32 QAM strong coding and modulation scheme.";
  }

  identity qam-32-light {
    base qam-32;
    description
      "32 QAM light coding and modulation scheme.";
  }

  identity qam-64 {
    base coding-modulation;
    description
      "64 QAM coding and modulation scheme.";
  }

  identity qam-64-strong {
    base qam-64;
    description
      "64 QAM strong coding and modulation scheme.";
  }

  identity qam-64-light {
    base qam-64;
    description
      "64 QAM light coding and modulation scheme.";
  }

  identity qam-128 {
    base coding-modulation;
    description
      "128 QAM coding and modulation scheme.";
  }

  identity qam-128-strong {
    base qam-128;
    description
      "128 QAM strong coding and modulation scheme.";
  }

  identity qam-128-light {
    base qam-128;
    description
      "128 QAM light coding and modulation scheme.";
  }

  identity qam-256 {
    base coding-modulation;
    description
      "256 QAM coding and modulation scheme.";
  }

  identity qam-256-strong {
    base qam-256;
    description
      "256 QAM strong coding and modulation scheme.";
  }

  identity qam-256-light {
    base qam-256;
    description
      "256 QAM light coding and modulation scheme.";
  }

  identity qam-512 {
    base coding-modulation;
    description
      "512 QAM coding and modulation scheme.";
  }

  identity qam-512-strong {
    base qam-512;
    description
      "512 QAM strong coding and modulation scheme.";
  }

  identity qam-512-light {
    base qam-512;
    description
      "512 QAM light coding and modulation scheme.";
  }

  identity qam-1024 {
    base coding-modulation;
    description
      "1024 QAM coding and modulation scheme.";
  }

  identity qam-1024-strong {
    base qam-1024;
    description
      "1024 QAM strong coding and modulation scheme.";
  }

  identity qam-1024-light {
    base qam-1024;
    description
      "1024 QAM light coding and modulation scheme.";
  }

  identity qam-2048 {
    base coding-modulation;
    description
      "2048 QAM coding and modulation scheme.";
  }

  identity qam-2048-strong {
    base qam-2048;
    description
      "2048 QAM strong coding and modulation scheme.";
  }

  identity qam-2048-light {
    base qam-2048;
    description
      "2048 QAM light coding and modulation scheme.";
  }

  identity qam-4096 {
    base coding-modulation;
    description
      "4096 QAM coding and modulation scheme.";
  }

  identity qam-4096-strong {
    base qam-4096;
    description
      "4096 QAM strong coding and modulation scheme.";
  }

  identity qam-4096-light {
    base qam-4096;
    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.";
  }
}
